解决:关于启动Kafka一段时间后,进程自己停止运行的问题
问题:
启动kafka一段时间后发现后台只有zookeeper进程在运行而kafka进程停止。
解决:
1. 确保kafka和zookeeper的正确启动顺序:
启动kafka时先启动zookeeper
关闭kafka时先关闭kafka后关闭zookeeper
2. 清除旧日志:
图片:
3. 以daemon守护进程方式运行:
bash nohup sh zookeeper-server-start.sh -daemon ../config/zookeeper.properties > ../logs/zookeeper.log 2>&1 & sleep 5 nohup sh kafka-server-start.sh -daemon ../config/server.properties > ../logs/kafka.log 2>&1 &
4. 验证服务是否正常:
图片:
问题:
在kafka运行一段时间后观察发现,在该系统中除该进程外(即非kafka进程),只有一个其他进程zookeeper处于正常运行状态;而经过详细检查后发现kafka自身出现故障无法正常启动。
解决:
1-关于zookeeper和kafka的启动顺序
因为kafka依赖与zookeeper,关于kafka和zookeeper的启动顺序:
启动kafka时:先启动zookeeper,保证zookeeper服务正常后,后再启动Kafka。
关闭Kafka时:先关闭kafka,再关闭zookeeper。
确保Kafka启动及停止操作均正常完成。在Kafka启动之后,在一段时间内不再响应心跳检测机制,则表示该进程已失效。针对上述情况的解决方案如下:
确保Kafka启动及停止操作均正常完成。在Kafka启动之后,在一段时间内不再响应心跳检测机制,则表示该进程已失效。针对上述情况的解决方案如下:
2-删除kafka的log.dirs路径下的内容

3-以daemon守护进程方式启动kafka
对已有的kafka启动脚本start.sh进行修改,在运行时按照daemon守护进程的方式进行启动,并同时启动zookeeper服务
nohup sh zookeeper-server-start.sh -daemon ../config/zookeeper.properties > ../logs/zookeeper.log 2>&1 &
sleep 5
nohup sh kafka-server-start.sh -daemon ../config/server.properties > ../logs/kafka.log 2>&1 &
4-重新执行脚本,查看端口

已正常可以启动kafka。
