ZooKeeper的安装模式分为三种,分别为:单机模式(stand-alone)、集群模式(replicated mode)和集群伪分布模式。ZooKeeper
单机模式的安装相对比较简单,如果第一次接触ZooKeeper的话,建议安装ZooKeeper单机模式或者集群伪分布模式。
安装ZooKeeper的前提是必须安装JDK,版本6以上,具体安装见 http://blog.csdn.net/my_jobs/article/details/45070885
一、单机模式
此模式可以入门学习用,或者测试环境下使用。在工程环境中,不推荐使用此模式,因为单节点宕机,数据全无,不能充分利用zookeeper本身的优点。单机模式比较简单,如下:
1)到官网下载一个稳定版本:地址http://zookeeper.apache.org/releases.html
2)解压到指定目录,比如简单起见,解压到/root下:tar -zxvf zookeeper-3.4.6.tar.gz
3)为了之后操作方面,可以把ZooKeeper的bin目录加载到PATH路径下,方便使用。跟加入JAVA_HOME同理
4)cd到刚才解压的目录下,到conf目录下,此时有三个文件,主要为zoo_sample.cfg,可以mv zoo_sample.cfg zoo.cfg。其中zoo.cfg为ZooKeeper的主配置文件。
# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/tmp/zookeeper
# the port at which the clients will connect
clientPort=2181
- tickTime:这个时间是作为ZooKeeper服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。
- dataDir:顾名思义就是Zookeeper保存数据的目录,默认情况下,Zookeeper 将写数据的日志文件也保存在这个目录里。
- clientPort:这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请。
现在就可以启动ZooKeeper了。如果加入PATH,运行zkServer.sh start即可,否则,到ZooKeeper的bin目录下运行此命令。可以运行zkCli.sh命令检测是否启动成功。
以上即为单机模式
二、集群模式
1)修改配置文件zoo.cfg
在单机的基础上,追加如下配置
server.1=192.168.0.11:2888:3888
server.2=192.168.0.12:2888:3888
server.3=192.168.0.13:2888:3888
server.A=B:C:D:其中 A 是一个数字,表示这个是第几号服务器;B 是这个服务器的 ip 地址;C 表示的是这个服务器与集群中的
Leader 服务器交换信息的端口;D 表示的是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的 Leader,而这个端口就是用来执行选举时服务器相互通信的端口。如果是伪集群的配置方式,由于 B 都是一样,所以不同的 Zookeeper 实例通信端口号不能一样,所以要给它们分配不同的端口号。
2)将其他机子做同样处理。拷贝安装文件,包括ZooKeeper的安装包和更改后的zoo.cfg配置文件。
3)设置myid,在自己配置的dataDir下,新建vim myid。里面为一个简单的数字,与第1)步中的A相对应。
4)启动ZooKeeper集群。在各个节点运行zkServer.sh start
5)检测是否安装成功。运行./bin/zkServer.sh
status 或者 /opt/zookeeper-3.4.3/bin/zkCli.sh 或 echo stat|nc localhost 2181