启动多个 Kafka 代理失败 - 配置的代理标识与存储的代理标识不匹配



尝试启动具有不同经纪人的多个Kafka经纪人。一个是默认的server.properties,另一个是serverTest.properties,其中2行更改为broker.id=1listeners=PLAINTEXT://localhost:6000。其余的是相同的默认设置。我首先启动Zookeeper,然后启动默认的KAFKA server.properties,然后在启动serverTest.properties时获得以下例外:kafka.common.InconsistentBrokerIdException: Configured brokerId 1 doesn't match stored brokerId 0 in meta.properties。我的理解是,如我在教程中看到其他人所做的那样,上面的以下内容应该启动多个节点。我正在使用Kafka 9.0。

编辑config/servertest.properties,替换现有配置值如下:

broker.id=2
listeners=PLAINTEXT://9093
log.dirs=/tmp/kafka-logs-2

如果您想要第三个经纪人:

cp config/server.properties config/server3.properties

编辑config/server3.properties,并替换现有的配置值如下:

broker.id=3
listeners=PLAINTEXT://:9094
log.dirs=/tmp/kafka-logs-3

如果您在不同的机器上运行,则必须更改

advertised.listeners=PLAINTEXT://192.168.x.x:<port>

其他

从经验中说话,不要忘记编辑kafka-logs-*/meta.properties文件中的broker.id条目以匹配您的更改(或删除文件并让Kafka再生它们)。

这是旧问题,但这个答案仍然可以帮助他人。问题是当您从现有服务器中创建新服务器时。

# A comma separated list of directories under which to store log files
log.dirs=/tmp/kafka-logs

因此,即使是新经纪人都试图使用相同的日志dir,因此使用了元。

所以,转到/tmp并删除所有kafka-logs*文件,然后注释log.dirs=/tmp/kafka-logs然后随着添加添加行:)

答案是完美的,但是我花了一段时间才弄清楚它才能使它起作用。我想分享我的错误,并希望其他人可以避免。

我在这里遵循Kafka的官方教程:

https://kafka.apache.org/quickstart#quickstart_multibroker。

并按照指南中的建议进行文件副本:

cp config/server.properties config/server-1.properties

我使用vim打开文件。我搜索 broker.id ,然后用以下内容替换(通过假设没有现有侦听器 log.dir.dirs 的错误)如下


# config/server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-logs-1

我用

创办了一个新经纪人
 >  bin/kafka-server-start.sh config/server-1.properties

坠毁了!!!这就是我调试的方式:

我去了/tmp 并检查了dir kafka-logs-1 未出现。我意识到我的log.dir在配置中应该有问题。我在config/server-1.propeties中对其进行了仔细检查。我发现有两行log.dirs。

#copy from the tutorial
log.dirs=/tmp/kafka-logs-1

# default one
log.dirs=/tmp/kafka-logs

当然,最后一个覆盖了第一个,从而使新经纪人指向ID = 0的第一个经纪人。

删除了最后一个log.dirs并仅保留一个log.dir.dirs( log.dirs =/tmp/tmp/kafka-logs-1 ),就像魅力一样。

确保在server.propertiesserverTest.properties中有不同的log.dirs

如果您必须进行任何log.dirs更改,请不要忘记删除存储在PC上的先前文件夹

确保 log Directories broker ID ports (带有听众)都不同节点/经纪人。

示例配置( server.properties ):

经纪1

broker.id=1
listeners=PLAINTEXT://:9092
log.dirs=/tmp/kafka-1-logs

经纪2

broker.id=2
listeners=PLAINTEXT://:9093
log.dirs=/tmp/kafka-2-logs

经纪人3

broker.id=3
listeners=PLAINTEXT://:9094
log.dirs=/tmp/kafka-3-logs

希望这会有所帮助。快乐黑客!

最新更新