kafka启动报错&问题解决
一早上班,就收到运维同事通知说有一台物理机宕机,导致虚拟机挂了。只得重启kafka服务器。
1.启动
启动zookeeper
bin/zkServer.sh start conf/zoo.cfg &
启动kafka
bin/kafka-server-start.sh config/server.properties &
2.测试
问题一
kafka启动之后,发现一直打印warn,上图。且在进程中ps -ef| grep kafka,无法看到。很明显kafka启动失败了。
Resetting first dirty offset of __consumer_offsets
从重复报错信息中可以得知,这是清理线程在一直遇到问题。最快的方式当前是清空kafka的data目录。或者不管这个warn,当大量数据涌入的时候,产生了可以清理的segment,就不会再有这个warn了。参考 https://blog.csdn.net/define_us/article/details/80537186。
问题二
正常启动kafka之后,测试能否使用走一波。
创建topic
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
生产者生产消息
[apps@erp-computation-4 kafka_2.11-1.1.0]$ bin/kafka-console-producer.sh --broker-list 10.17.156.8:9092 --topic test
my name is xiaoqiang
消费者消费消息
[apps@erp-computation-4 kafka_2.11-1.1.0]$ bin/kafka-console-consumer.sh --bootstrap-server 10.17.156.8:9092 --topic test --from-beginning
my name is xiaoqiang
至此,kafka启动完成,正常使用。 ctrl+c,关掉Xshell窗口,专心码代码。测试应用的时候发现,一堆报错全部指向连不上kafka。再战kafka服务器,发现kafka进程已不在。
kafka启动正常
应用启动正常
ctrl+c
应用连接kafka报错
kafka进程被干掉
最终问题发现: 退出kafka时不用ctrl+c, 要用exit函数去退出