kafka问题集(一):broker少于kafka节点数
问题集仅为个人实践,若有不准确的,欢迎交流!
一、现象:
集群有3台kafka服务器,而kafka 的9002界面上broker仅有2个;log.dirs配置路径为/data/kafka/data,而创建的topic数据都存放在默认路径下/tmp/kafka-logs。
二、分析过程
检查server.properties中log.dirs目录配置正确。查看日志目录,发现报错如下:
FATAL kafka.server.KafkaServer {...},Fatal error during kafkaServer startup.....:Socket sever failed to bind to 0.0.0.0:9092:地址已在被使用 |
从报错信息上可知,应该是端口号被占用了,停止kafka服务,使用命令:
lsof -i:9092
查看发现还有进程使用9092端口,kill到相应进程,重启服务,恢复正常。
三、延伸
启动kafka后,新建topic的数据所在地址正确了,但consumer的位置文件__consumer_offset_可能还在之前的/tmp/kafka-logs下,此时,可以尝试在kafka 9002界面上删除__consumer_offset_后,重启kafka服务。
不好但可行的方案:可以手动删除/tmp/kafka-logs下所有的文件,重启kafka服务,一切恢复正常。后遗症是:使用--list 选项查询topic时,可能还能存在,此时想彻底删除只能执行非常不推荐的方法:手动删除zookeeper目录下对应文件。
四、总结
发现报错信息以后可以多分析报错信息 at.....后面的提示信息。