Zookeeper集群模式安装

来源:互联网 发布:java string 倒序 编辑:程序博客网 时间:2024/05/21 13:11

1.安装zookeeper前需要先安装jdk(详见http://blog.csdn.net/u012343297/article/details/78748446)完成后,再下载zookeeper-3.4.11.tar.gz,下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.11/。
2.解压zookeeper-3.4.11.tar.gz,使用tar -zxvf zookeeper-3.4.11.tar.gz解压到/opt下。
3.进入到zookeeper解压后的目录:cd /opt/zookeeper-3.4.11/conf。
4.将conf目录下的zoo_sample.cfg复制一份,重命名为zoo.cfg。
cp ./zoo_sample.cfg zoo.cfg。
5.修改zoo.cfg配置文件。

# The number of milliseconds of each ticktickTime=2000# The number of ticks that the initial # synchronization phase can takeinitLimit=10# The number of ticks that can pass between # sending a request and getting an acknowledgementsyncLimit=5# the directory where the snapshot is stored.# do not use /tmp for storage, /tmp here is just # example sakes.dataDir=/home/lenmon/data/zookeeperdataLogDir=/home/lenmon/log/zookeeper# the port at which the clients will connectclientPort=2181server.1=192.168.25.128:2888:3888server.2=192.168.25.129:2888:3888server.3=192.168.25.130:2888:3888# the maximum number of client connections.# increase this if you need to handle more clientsmaxClientCnxns=60


  • initLimit : 此配置表示允许follower连接并同步到leader的初始化时间,它以tickTime的倍数来表示。当超过设置倍数的tickTime时间,则连接失败。
  • syncLimit : Leader服务器与follower服务器之间信息同步允许的最大时间间隔,如果超过次间隔,默认follower服务器与leader服务器之间断开链接。
  • maxClientCnxns : 限制连接到zookeeper服务器客户端的数量。
  • server.id=host:port:port : 表示了不同的zookeeper服务器的自身标识,作为集群的一部分,每一台服务器应该知道其他服务器的信息。用户可以从“server.id=host:port:port” 中读取到相关信息。在服务器的data(dataDir参数所指定的目录)下创建一个文件名为myid的文件,这个文件的内容只有一行,指定的是自身的id值。比如,服务器“1”应该在myid文件中写入“1”。这个id必须在集群环境中服务器标识中是唯一的,且大小在1~255之间。这一样配置中,zoo1代表第一台服务器的IP地址。第一个端口号(port)是从follower连接到leader机器的端口,第二个端口是用来进行leader选举时所用的端口。所以,在集群配置过程中有三个非常重要的端口:clientPort:2181、port:2888、port:3888。
          
    6.我这里配置了3台虚拟机作为zookeeper集群服务器,ip分别为192.168.25.128、192.168.25.129、192.168.25.130。三台服务器分别按以上步骤2-5安装配置zookeeper。
    7.启动zookeeper, bash ./zkServer.sh start,在使用bash ./zkServer.sh status查看状态。
    这里写图片描述
    从图中可以看出zookeeper没有启动成功。

通过查看bin下的zookeeper.out文件
这里写图片描述
由以上图中的报错信息可知:zk集群中的节点需要获取myid文件内容来标识该节点,没有在dataDir下创建相应的文件,就会无法启动。
解决方法:在各自zookeeper的dataDir目录下创建myid,内容分别为1、2、3,例如:vim /home/lenmon/data/zookeeper/myid 内容为 1
8.重新启动128服务器,查看zookeeper.out文件
这里写图片描述
由警告信息可知,129服务器拒绝连接,原因:129和130上的zookeeper服务未启动,此时可以不管这个警告。启动129和130的服务。
9.查看各个服务器上面zookeeper状态:
128服务器:
这里写图片描述
129服务器:
这里写图片描述
130服务器:
这里写图片描述

129为leader,128和130为follower。