zookeeper集群操作【这里只说明简单的操作步骤,zk的相关参数、说明请参考官方文档】
本文版权归 远方的风lyh和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作。
【这里是在一台机器上搭建的 zk伪集群】
1.从官网下载下载zk http://apache.fayea.com/zookeeper/
解压 并复制三套zk,这里我使用三台zk实例(server,演示使用3.4.7版本)
为什么使用三台zk?
在zookeeper的选举过程中,为了保证选举过程最后能选出leader,就一定不能出现两台机器得票相同的僵局,所以一般的,要求zk集群的server数量一定要是奇数,也就是2n+1 台,并且,如果集群出现问题,其中存活的机器必须大于n+1台,否则leader无法获得多数server的支持,系统就自动挂掉。所以一般是3个或者3个以上节点。
2.配置zk配置文件 conf/zoo.cfg(若没有请自建)
zk1-3.4.7
clientPort = 2181
dataDir=/tmp/zookeeper/1
syncLimit=5
tickTime=2000
initLimit=10
dataLogDir=/tmp/zookeeper/1
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
zk2-3.4.7
clientPort = 2182
dataDir=/tmp/zookeeper/2
syncLimit=5
tickTime=2000
initLimit=10
dataLogDir=/tmp/zookeeper/2
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
zk3-3.4.7
clientPort = 2183
dataDir=/tmp/zookeeper/3
syncLimit=5
tickTime=2000
initLimit=10
dataLogDir=/tmp/zookeeper/3
server.1=localhost:2888:3888
server.2=localhost:2889:3889
server.3=localhost:2890:3890
*说明:红色部分路径, 要自行创建相关目录
3.创建myid
终端执行指令
echo "1" > /tmp/zookeeper/myid/1
echo "2" > /tmp/zookeeper/myid/2
echo "3" > /tmp/zookeeper/myid/3
这里的myid文件中的值对应 zoo.cfg 中 server.x,分别代表1、2、3号server的id
4. 每一个server(这里是三台)执行以下命令 bin目录下
./zkServer.sh start
5.验证 集群是否搭建成功 bin目录下
./zkServer.sh status
如下如图则表示成功
附 :若在验证阶段执行./zkServer.sh start出现以下情况:
JMX enabled by default
Using config: /zk1-3.4.7/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
先执行停止相应的zk 停止指令为 zkServer.sh stop
再执行./zkServer.sh start-foreground 可以看到报错 根据报错进行修改