linux安装zookeeper集群模式

zookeeper | 2020-03-06 16:25:47

ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

安装zookeeper需要先安装java,请看linux centos 安装java jdk

zookeeper单机模式的安装请参考:linux安装zookeeper

zookeeper下载链接:http://archive.apache.org/dist/zookeeper/


1.伪集群模式

伪集群模式就是在同一主机启动多个zookeeper并组成集群,下边以在192.168.220.128主机上创3个zookeeper组集群为例。

    1.1 下载zookeeper后解压三份,为集群的三个节点

tar -zxvf zookeeper-3.4.9.tar.gz -C /home/jxwch/zookeeper1
tar -zxvf zookeeper-3.4.9.tar.gz -C /home/jxwch/zookeeper2
tar -zxvf zookeeper-3.4.9.tar.gz -C /home/jxwch/zookeeper3

    1.2 conf目录下分别新建配置文件zoo.cfg

    每个配置文件中只是clientPort不一样

zookeeper1配置文件conf/zoo.cfg修改如下:

tickTime=2000
dataDir=/usr/myapp/zookeeper1/data
dataLogDir=/usr/myapp/zookeeper1/logs
clientPort=2181
initLimit=5
syncLimit=2
server.1=192.168.220.128:2888:3888
server.2=192.168.220.128:4888:5888
server.3=192.168.220.128:6888:7888

zookeeper2配置文件conf/zoo.cfg修改如下:

tickTime=2000
dataDir=/usr/myapp/zookeeper2/data
dataLogDir=/usr/myapp/zookeeper2/logs
clientPort=3181
initLimit=5
syncLimit=2
server.1=192.168.220.128:2888:3888
server.2=192.168.220.128:4888:5888
server.3=192.168.220.128:6888:7888

zookeeper3配置文件conf/zoo.cfg修改如下:

tickTime=2000
dataDir=/usr/myapp/zookeeper3/data
dataLogDir=/usr/myapp/zookeeper3/logs
clientPort=4181
initLimit=5
syncLimit=2
server.1=192.168.220.128:2888:3888
server.2=192.168.220.128:4888:5888
server.3=192.168.220.128:6888:7888

    各个参数解释:

  • initLimit: zookeeper集群中的包含多台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参数必须不同.


    1.3 在每个节点dataDir对应目录新建myid文件

在每个节点的配置文件dataDir对应的目录中新myid文件,并在每个节点每个文件分别对应填上内容。

zookeeper1节点myid文件中填1,

zookeeper2节点myid文件中填2,

zookeeper3节点myid文件中填3。

是滴,只填一个数字。

    1.4分别启动各个节点

./bin/zkServer.sh start #启动命令
./bin/zkServer.sh stop #停止命令
./bin/zkServer.sh restart #重启命令
./bin/zkServer.sh status #查看状态

启动各个节点后,随便找一个zookeeper启动客户端来查看详情

./bin/zkCli.sh


2.集群模式

集群模式就是多台物理机部署zookeeper实现高性能高可用。

    2.1.集群模式和伪集群模式的方式差不多的,只是每个节点放在不同的机器上。

    2.2.由于在不同的机器上,端口就没有冲突的区别,所以,每个节点配置文件可以全部一样。

    2.3.只是dataDir对应目录下的myid文件中的值不一样就可以了。可以用ip的最后段作为myid的值方便管理些。



登录后即可回复 登录 | 注册
    
关注编程学问公众号