Zookeeper安装和配置

Zookeeper的安装和配置十分简单,既可以配置成单机模式,也可以配置成集群模式

下载zookeeper的安装包之后,解压到合适目录。

单机模式
进入zookeeper目录下的conf子目录,创建zoo.cfg(conf/zoo_sample.cfg是默认配置文件)

tickTime=2000
dataDir=/Application/zookeeper/data
dataLogDir=/Application/zookeeper/logs
clientPort=4180

- tickTime: zookeeper中使用的基本时间单位,毫秒值
- dataDir: 数据目录,可以是任意目录
- dataLogDir: log目录,同样可以是任意目录。如果没有设置该参数,将使用和dataDir相同的设置
- clientPort: 监听client连接的端口号

至此,zookeeper的单机模式已经配置好了。启动server只需运行脚本:

$ bin/zkServer.sh start

Server启动之后,就可以启动client连接server了,执行脚本:

$ bin/zkCli.sh -server localhost:4180

伪集群模式
所谓伪集群,是指在单台机器中启动多个zookeeper进程,并组成一个集群。以启动3个zookeeper进程为例
将zookeeper的目录拷贝2份:

|--zookeeper0
|--zookeeper1
|--zookeeper2

更改zookeeper0/conf/zoo.cfg文件:

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/Application/zookeeper0/data
dataLogDir=/Application/zookeeper0/logs
clientPort=4180
server.0=127.0.0.1:8880:7770
server.1=127.0.0.1:8881:7771
server.2=127.0.0.1:8882:7772

新增参数的含义:
- initLimit: 集群中的包含多台server,其中一台为leader,其余的server为follower。initLimit参数配置初始化连接时,follower和leader之间的最长心跳时间。此时该参数设置为5,说明时间限制为5倍tickTime,即5*2000=10000ms=10s
- syncLimit: 该参数配置leader和follower之间发送消息,请求和应答的最大时间长度。此时该参数设置为2,说明时间限制为2倍tickTime,即4000ms
- server.X=A:B:C 其中X是一个数字,表示这是第几号server。A是该server所在的IP地址。B配置该server和集群中的leader交换消息所使用的端口。C配置选举leader时所使用的端口。由于配置的是伪集群模式,所以各个server的B,C参数必须不同

参照zookeeper0/conf/zoo.cfg,配置zookeeper1/conf/zoo.cfg和zookeeper2/conf/zoo.cfg文件只需更改dataDir、dataLogDir、clientPort参数即可
在之前设置的dataDir中新建myid文件,写入一个数字,该数字表示这是第几号server,该数字必须和zoo.cfg文件中的server.X中的X一一对应:
/zookeeper0/data/myid文件中写入0
/zookeeper1/data/myid文件中写入1
/zookeeper2/data/myid文件中写入2

分别进入三个zookeeper下的bin目录,启动server

$ bin/zkServer.sh start

任意选择一个server目录,启动客户端

$ bin/zkCli.sh -server localhost:4180

集群模式
集群模式的配置和伪集群基本一致
由于集群模式下,各server部署在不同的机器上,因此各server的conf/zoo.cfg文件可以完全一样

tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/zookeeper/data
dataLogDir=/home/zookeeper/logs
clientPort=4180
server.43=10.1.39.43:2888:3888
server.47=10.1.39.47:2888:3888
server.48=10.1.39.48:2888:3888

需要注意的是, 各server的dataDir目录下的myid文件中的数字必须与对应的server.X的X相同

你可能感兴趣的:(Zookeeper安装和配置)