在安装Kafka集群的时候,碰到这个问题。
我们知道在搭建Kafka集群的时候,我们需要设置broker.id,以作为当前服务器在整个集群的唯一标志。
网上搜查资料是说,log.dirs目录下的meta.properties中配置的broker.id和配置目录下的server.properties中的broker.id不一致了,解决问题的方法是将两者修改一致后再重启。
而当时为何会产生这个问题?
1、Kafka配置目录下文件server.properties中一个broker.id
# The id of the broker. This must be set to a unique integer for each broker. broker.id=2 # A comma seperated list of directories under which to store log files log.dirs=/tmp/kafka-logs
另外还有一个属性log.dirs,这是kafka产生log目录,log目录 下有meta.properties文件,而meta.properties文件中也写有broker.id,这是在运行时产生的。
#Wed Nov 08 15:59:53 PST 2017 version=0 broker.id=2
2、实际操作的因素
我是先搭建了单台的kafka,在上面试验了一把(注意:这个时候已经在kafka的日志记录下产生了相应的日志文件和meta.properties文件)。
然后开始搭建kafka集群,以前面的一台虚拟机为副本,直接克隆了另外2台kafka主机。
这样在新的2台机器上,虽然改了另外两台的server.properties的broker.id,第1台产生的日志记录在另外两台仍然存在,用meta.properties文件中的broker.id也需要修改成与server.properties中的broker.id一样,所以造成了这个问题。
参考文档
http://blog.csdn.net/shandadadada/article/details/50615866