kafka自动关闭退出问题:开启kafka一段时间后,jps发现kafka自动退出。
一:zookeeper出现问题。
解决方法:
开启zk,来到zk路径下开启一个zk
bin/zkServer.sh start
.
查看zk的状态
bin/zkServer.sh status
发现zk并没有运行,这是正常现象,因为一台机器开启zk,没有达到集群的半数,不工作。
接着在第二台机器上开启zk 并查看zk状态
bin/zkServer.sh start
bin/zkServer.sh status
如果zk状态出现如下情况:Error contacting service. It is probably not running.证明zk出现了问题,没有启动。
.
检查防火墙是否关闭:
systemctl status firewalld
出现了active (running) 好消息,关闭防火墙就能解决问题!
关闭防火墙:
systemctl stop firewalld
查看防火墙状态:`systemctl status firewalld
出现inactive (dead) 就已经成功关闭了,记得其他机器也要关闭防火墙。
再次先启动zk,后启动kafka。如果kafka不会自动退出,那这样就可以了。
如果以上方法并没有解决您kafka自动退出的问题,不要着急,听我分析第二种可能。
.
二:kafka的cluster.id 与 zk的中的cluster 的id不匹配
.
修改方法:进入到kafka/config 目录下的 server.properties文件 找到
log.dirs 路径
.
进入到这个路径中(每个人修改的可能不一样,要确定自己的路径。)
找到路径下的 meta.properties 文件,vim打开,查看cluster.id的值。
(注意:检查以下每一台机器的 broker.id 是否相同,如果相同也是导致kafka无法启动的原因,类似于:改成第一台机器为:0,第二台:1,第三台:2…)
.
接着去到zk路径。进入到zookeeper客户端命令行模式:`bin/zkCli.sh
进入后输入
ls /
,目的是找到cluster,(这里我的是直接显示,如果找不到,有可能在kafka目录下)
.
输入
get /cluster/id
得到一串密钥复制到kafka的meta.properties 里的cluster.id文件中,确保zk里的id与kafka的cluster.id相同就行。然后重启zk和kafka。
.
如果你的kafka在此之前就已经打不开了,那别着急,你也可以更改zk里的cluster
输入set /cluster/id + 需要更改的值
set /cluster/id {"version":"1","id":"u9P_hxPBTJWDco5DYdddd"}
总之确保kafka的cluster.id与zk的cluster相同,然后那台机器不能连上就去用以上步骤修改。
希望这篇文章能解决读者的问题,谢谢!!
版权归原作者 ·小菜鸡 所有, 如有侵权,请联系我们删除。