文章目录
- 1.报错详情
- 2.解决办法
- 2.1 常见问题解决(办法汇总)
- 2.1.1 JDK 是否配好,版本是否与 Zookeeper 不兼容
- 2.2.2 端口是否被占用
- 2.2.3 网卡问题
- 2.2.4 网络问题
- 2.2.5 (慎用!)删除 `dataDIr` 目录下的文件后重启
- 2.2 查看日志解决
- 2.1 常见问题解决(办法汇总)
1.报错详情
jps
查看进程是正常的,但是 zkServer.sh status
查看的时候报错。
[root@node2 zookeeper-3.4.6]# jps
1260 QuorumPeerMain
1278 Jps
[root@node2 zookeeper-3.4.6]# zkServer.sh status
JMX enabled by default
Using config: /opt/lft/zookeeper-3.4.6/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
2.解决办法
2.1 常见问题解决(办法汇总)
2.1.1 JDK 是否配好,版本是否与 Zookeeper 不兼容
执行下面两行命令看是否正常(不要觉得第二行没必要,反正我以前遇到过这种坑)
java -version
java
版本的话一般不会搞冲突,除非你的公司刚刚起步,架构水的一批。没毕业的朋友就更不用说了,除非老师足够水。。。
2.2.2 端口是否被占用
代码语言:javascript复制# 如果集群没有启动,那么该端口不应该被占用
netstat -apn | grep 2181 #默认2181端口为服务端提供端口,如果你的修改了,按你的实际情况为准
# 查询出来占用2181端口的进程PID后杀掉即可
kill -9 pid #pid为占用端口的进程id号
2.2.3 网卡问题
执行 ip add
回车
如果红框位置是物理地址,重启网卡即可:service network restart
。
2.2.4 网络问题
ping
测试
我 ping 百度的(有数据响应即可),也可以 ping 其他结点的机器。
2.2.5 (慎用!)删除 dataDIr
目录下的文件后重启
我在网上看到有不少朋友这样搞,有些情况也确实很管用:
但是不建议使用!!!除非你在学习阶段,只是自己在虚拟机上玩玩。 工作的朋友就别用这个方法了,除非你在搭建阶段,还没投入生产使用。
2.2 查看日志解决
查看我的日志:
Cannot open channel to 3 at election address node4/192.168.146.114:3888
解决办法:
(1)确保防火墙关闭
代码语言:javascript复制# 关闭防火墙
service iptables stop
# 查看防火墙状态
service iptables status
注意 不同发行版的Linux系统的防火墙也不相同,如centos和ubuntu,centos6和centos7… 我这里用的是centos6.5,各位,关于 ubuntu和centos 主流版本的防火墙命令可以参考: https://blog.csdn.net/weixin_44285445/article/details/107558294
(2)确保你当时安装配置的时候,在 xx/data目录/myid 有相应的数字(这个目录是你在配置文件 zoo.cfg 中给 dataDir
赋的值)
(3)以上两个都确保的情况下还不行的话,就将 zoo.cfg 中 server.id
的值修改一下:
在此之前我的三台机器都是这样配的:
server.1=node2:2888:3888 server.2=node3:2888:3888 server.3=node4:2888:3888
修改后是这样(就是把本机的):
然后重启 zookeeper 集群就阔以了。