centos7安装zookeeper集群

下载zookeeper-3.4.14 并解压

tar zxvf zookeeper-3.4.14.tar.gz

mv zookeeper-3.4.14  /usr/local/

zookeeper集群至少需要3台服务器.否则会报如下错误

关闭防火墙

systemctl stop firewalld

复制conf文件夹下zoo_sample.cfg 并重命名为zoo.cfg

并修改成如下配置

 

centos7 安装zookeeper集群

 

 

下载zookeeper-3.4.14 并解压

tar zxvf zookeeper-3.4.14.tar.gz

mv zookeeper-3.4.14  /usr/local/zookeeper

 

zookeeper集群至少需要3台服务器.否则会报如下错误

关闭防火墙

systemctl stop firewalld

 

复制/usr/local/zookeeper /conf文件夹下zoo_sample.cfg 并重命名为zoo.cfg

并修改成如下配置

 

tickTime=2000

dataDir=/usr/local/zookeeper-3.4.14/data

dataLogDir=/usr/local/zookeeper-3.4.14/logs

clientPort=2181

initLimit=5

syncLimit=2

 

server.1=172.16.129.83:2888:3888

server.2=172.16.129.86:2888:3888

server.3=172.16.129.207:2888:3888

server.4=172.16.129.6:2888:3888

server.5=172.16.129.32:2888:3888

server.6=172.16.129.14:2888:3888

 

创建data和log文件夹

mkdir -p /usr/local/zookeeper-3.4.14/data

mkdir -p /usr/local/zookeeper-3.4.14/logs

 

根据server的ip对应的值在data下创建一个myid文件

在172.16.129.83上执行

cat >/usr/local/zookeeper-3.4.14/data/myid<<EOF

1

EOF

 

在172.16.129.86上执行

cat >/usr/local/zookeeper-3.4.14/data/myid <<EOF

2

EOF

 

其余机子也是如此  注意myid 如果是如下所示会报zoo.cfg错误 注意空行

 

 

启动zookeeper

/usr/local/zookeeper-3.4.14/bin/zkServer.sh start

这样启动之后 发现zookeeper 显示启动成功但是查看status 是不正常启动

/usr/local/zookeeper-3.4.14/bin/zkServer.sh status

 

查看端口发现3888并没有启动

2181是zookeeper客户端连接的端口,所以进程号32143启动起来的,监听37271端口,但是zookeeper没有配置这个端口,而是配置2888,3888端口,正常情况下作为follower的时候是3888端口监听中,用于选举leader通讯。出现这个情况不得而知。重新启动该进程,上面一个端口号在不断的变化。至此问题是找到了,就是服务端进程没有监听配置的3888端口,而是监听了随机端口导致其它服务器进程无法与之通讯,所以看到了这个异常。

 

 

后来找到了一篇大佬分析源码的文章,

https://blog.csdn.net/u014284000/article/details/74508963#commentBox

 

 

ip地址不是本机网卡

原因很简单,这是云服务器,云服务器采用虚拟化的技术,监听的网卡是属于物理网关的网卡,而虚拟化机内部自然没有这个网卡。

 

这个时候真正的原因找到了,解决办法就是让服务器进程监听0.0.0.0的ip地址,也就是监听所有网卡。

 

QuorumCnxManager.java

发现前边有一个listenOnAllIPs这个参数,如果他是true,那么问题就解决了。于是向上级跟踪。找到QuorumPeerConfig.java中

 

 

 

于是在zoo.cfg中添加了

quorumListenOnAllIPs=true 解决

 

 

tickTime=2000

dataDir=/usr/local/zookeeper-3.4.14/data

dataLogDir=/usr/local/zookeeper-3.4.14/logs

clientPort=2181

initLimit=5

syncLimit=2

#server.1=172.16.129.83:3888

#server.2=172.16.129.86:3888

#server.3=172.16.129.207:3888

#server.4=172.16.129.6:3888

#server.5=172.16.129.32:3888

#server.6=172.16.129.14:3888

quorumListenOnAllIPs=true

server.1=172.16.129.83:2888:3888

server.2=172.16.129.86:2888:3888

server.3=172.16.129.207:2888:3888

server.4=172.16.129.6:2888:3888

server.5=172.16.129.32:2888:3888

server.6=172.16.129.14:2888:3888

 

 

 

 

 

大佬原文

https://blog.csdn.net/u014284000/article/details/74508963#commentBox

 

 

这样启动之后 发现zookeeper 显示启动成功但是查看status 是不正常启动

 

 

 

 

查看端口发现3888并没有启动

2181是zookeeper客户端连接的端口,所以进程号32143启动起来的,监听37271端口,但是zookeeper没有配置这个端口,而是配置2888,3888端口,正常情况下作为follower的时候是3888端口监听中,用于选举leader通讯。出现这个情况不得而知。重新启动该进程,上面一个端口号在不断的变化。至此问题是找到了,就是服务端进程没有监听配置的3888端口,而是监听了随机端口导致其它服务器进程无法与之通讯,所以看到了这个异常。

 

 

后来找到了一篇大佬分析源码的文章,

https://blog.csdn.net/u014284000/article/details/74508963#commentBox

 

 

ip地址不是本机网卡

原因很简单,这是云服务器,云服务器采用虚拟化的技术,监听的网卡是属于物理网关的网卡,而虚拟化机内部自然没有这个网卡。

 

这个时候真正的原因找到了,解决办法就是让服务器进程监听0.0.0.0的ip地址,也就是监听所有网卡。

 

QuorumCnxManager.java

发现前边有一个listenOnAllIPs这个参数,如果他是true,那么问题就解决了。于是向上级跟踪。找到QuorumPeerConfig.java中

 

 

 

于是在zoo.cfg中添加了

quorumListenOnAllIPs=true 解决

 

 

tickTime=2000

dataDir=/usr/local/zookeeper-3.4.14/data

dataLogDir=/usr/local/zookeeper-3.4.14/logs

clientPort=2181

initLimit=5

syncLimit=2

#server.1=172.16.129.83:3888

#server.2=172.16.129.86:3888

#server.3=172.16.129.207:3888

#server.4=172.16.129.6:3888

#server.5=172.16.129.32:3888

#server.6=172.16.129.14:3888

quorumListenOnAllIPs=true

server.1=172.16.129.83:2888:3888

server.2=172.16.129.86:2888:3888

server.3=172.16.129.207:2888:3888

server.4=172.16.129.6:2888:3888

server.5=172.16.129.32:2888:3888

server.6=172.16.129.14:2888:3888

 

 

 

 

 

大佬原文

https://blog.csdn.net/u014284000/article/details/74508963#commentBox

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爷来辣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值