linux 下搭建zookeeper集群 踩坑经过,Java面试题集2021版

linux 下搭建zookeeper集群 踩坑经过,Java面试题集2021版,第1张

linux 下搭建zookeeper集群 踩坑经过,Java面试题集2021版

echo “1” > /usr/local/zookeeper/data/myid

#在192.168.xx.129服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.2保持一致,如下

echo “2” > /usr/local/zookeeper/data/myid

#在192.168.xx.130服务器上面创建myid文件,并设置值为1,同时与zoo.cfg文件里面的server.3保持一致,如下

echo “3” > /usr/local/zookeeper/data/myid

到此 配置结束

然后 同时进入 /usr/zookeeper-3.3.6/bin/ 目录下  启动 ./zkServer.sh start

JMX enabled by default Using config: /usr/zookeeper-3.3.6/bin/../conf/zoo.cfg Starting zookeeper ... STARTED [root@node0 zookeeper-3.4.6]$ ./bin/**zkServer.sh status** JMX enabled by default Using config: /usr/zookeeper-3.6.6/bin/../conf/zoo.cfg Error contacting service. It is probably not running.zkServer.sh status

JMX enabled by default

Using config: /usr/zookeeper-3.6.6/bin/…/conf/zoo.cfg

Error contacting service. It is probably not running.

start 正常,但是查看状态时,出现如下错误:

Error contacting service. It is probably not running.

停掉ZK,然后以start-foreground方式启动,查看启动日志:

即:zkServer.sh start-foreground ,又出现如下错误:

  1. java.net.BindException: 地址已在使用

  2. at sun.nio.ch.Net.bind0(Native Method)

  3. at sun.nio.ch.Net.bind(Net.java:463)

  4. at sun.nio.ch.Net.bind(Net.java:455)

  5. at sun.nio.ch.ServerSocketChannelImpl.bind(ServerSocketChannelImpl.java:223)

  6. at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:74)

  7. at sun.nio.ch.ServerSocketAdaptor.bind(ServerSocketAdaptor.java:67)

  8. at org.apache.zookeeper.server.NIOServerCnxnFactory.configure(NIOServerCnxnFactory.java:90)

  9. at org.apache.zookeeper.server.quorum.QuorumPeerMain.runFromConfig(QuorumPeerMain.java:130)

  10. at org.apache.zookeeper.server.quorum.QuorumPeerMain.initializeAndRun(QuorumPeerMain.java:111)

  11. at org.apache.zookeeper.server.quorum.QuorumPeerMain.main(QuorumPeerMain.java:78)

从错误信息来看,是

《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》

【docs.qq.com/doc/DSmxTbFJ1cmN1R2dB】 完整内容开源分享

端口被使用了,但我用netstat -lntup是没被使用的,再用 lsof -i:2181,发现了2181端口果然被占用了

[root@ programfiles]# lsof -i:2181

是java的一个进程 占用了端口(这里忘了截图了)。

再次修改 conf/zoo.cfg 将端口号 2181 修改为 21810,重新启动

java.net.NoRouteToHostException: 没有到主机的路由

at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:712)

at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:111)

at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:371)

at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:404)

at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:688)

at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:622)

又出现了如下错误,真是一部一个坑。

检查了一下防火墙的状态,将其关闭:

centos7.0(默认是使用firewall作为防火墙,如若未改为iptables防火墙,使用以下命令查看和关闭防火墙)

查看防火墙状态:firewall-cmd --state

关闭防火墙:systemctl stop firewalld.service

重新启动:

zkServer.sh start-foreground

java.net.ConnectException: 拒绝连接

at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)

at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:712)

at sun.nio.ch.SocketAdaptor.connect(SocketAdaptor.java:111)

at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectOne(QuorumCnxManager.java:371)

at org.apache.zookeeper.server.quorum.QuorumCnxManager.connectAll(QuorumCnxManager.java:404)

at org.apache.zookeeper.server.quorum.FastLeaderElection.lookForLeader(FastLeaderElection.java:688)

at org.apache.zookeeper.server.quorum.QuorumPeer.run(QuorumPeer.java:622)

竟然还有错误?!!百度到一片文章,后说需要修改   /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4

::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

将第一行注释掉,再次启动:

zkServer.sh start

启动成功!查看一下 状态

zkServer.sh status

[root@localhost bin]# ./zkServer.sh status JMX enabled by default Using config: /usr/zookeeper-3.3.6/bin/../conf/zoo.cfg Mode: followerfollower

[root@localhost bin]# ./zkServer.sh status JMX enabled by default Using config: /usr/zookeeper-3.3.6/bin/../conf/zoo.cfg Mode: leaderleader

[root@localhost bin]# ./zkServer.sh status JMX enabled by default Using config: /usr/zookeeper-3.3.6/bin/../conf/zoo.cfg Mode: followerfollower

至此,zookeeper集群搭建完毕,感觉所有的坑全踩了一遍。对于一个刚刚接触linux 不久的菜鸟来说真的很残忍。希望能够帮到大家!
问题最后解决看的是这篇文章,http://blog.csdn.net/pein_zero/article/details/51855244

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5679432.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存