【问题标题】:Launching multiple Kafka brokers fails - Configured brokerId doesn't match stored brokerId启动多个 Kafka 代理失败 - 配置的 brokerId 与存储的 brokerId 不匹配
【发布时间】:2016-10-30 03:33:37
【问题描述】:

在尝试使用不同的 brokerId 启动多个 Kafka 代理时。一个是默认的server.properties,另一个是serverTest.properties,更改了两行,分别是broker.id=1 和listeners=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。

【问题讨论】:

    标签: apache-kafka


    【解决方案1】:

    编辑 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>
    

    否则,如果您在同一台 vmware 机器上运行,例如,您应该只更改端口和 log.dir,如上所述

    【讨论】:

    • 我的理解是listeners=PLAINTEXT://localhost:6000 也应该让它在6000 部分运行。
    • 从您上面的编辑中,如果我不理会监听器并只更改端口,我所做的一项测试是在 Web 浏览器中转到该端口。我注意到在 9092 上,Kafka 会提到接收到无效的字节数,而对 localhost:6000 做同样的事情没有任何作用。我希望在 kafka java 客户端的引导设置中运行一个可以通过端口 6000 连接的 kafka 代理。
    • 端口 6000 是 X Windows 的默认端口,因此请确保您没有其他与 Kafka 无关的冲突。最好避免整个 6000-6063 范围 - networksorcery.com/enp/protocol/xwindow.htm
    • 我刚刚注意到 Kafka 有一个错误 - 它为我们修改 server.properties 文件以指向另一个端口的代理打印默认端口 9092。但是,服务器(即代理)会打开配置提到的端口。所以看起来像 kafka 2.12 的日志记录错误
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      这是一个老问题,但这个答案应该对其他人有所帮助。问题是当您从现有的 server.properties 创建新的 server.properties 时,以下行将被复制:

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

      因此,即使是新代理也尝试使用相同的日志目录,因此它使用由代理 0 创建且代理 ID 为 0 的 kafka-logs 的 meta.properties。

      所以,去 /tmp 并删除所有 kafka-logs* 文件,然后评论 log.dirs=/tmp/kafka-logs 然后添加您添加的行:)

      【讨论】:

      • 我认为这是主要原因:),因为当我们像听众一样按照教程进行操作时,我们会在顶部创建另一个条目,并且默认文件已经有一个条目log.dirs
      【解决方案4】:

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

      我在这里按照kafka的官方教程进行操作:

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

      并按照指南中的建议制作文件副本:

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

      我使用 vim 打开文件。我搜索 broker.id 并替换为以下内容(假设不存在 listeners 和 log.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 并检查了目录 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.dirs ( log.dirs=/tmp/kafka-logs-1 ) 就像一个魅力。

      【讨论】:

      • 谢谢,我也遇到了同样的问题。
      • @ToofanHasArrived 是的,好像很容易出错。
      • 链接已失效...
      【解决方案5】:

      确保在您的server.properties 和serverTest.properties 中有不同的log.dirs

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

      【讨论】:

        【解决方案6】:

        确保每个节点/代理的日志目录、代理ID和端口(带有侦听器)都不同。

        示例配置(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
        

        希望这会有所帮助。愉快的黑客攻击!

        【讨论】:

          猜你喜欢
          • 2019-03-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-04-27
          • 1970-01-01
          • 1970-01-01
          • 2021-12-24
          • 1970-01-01
          相关资源
          最近更新 更多