Kafka中操作topic時 Error:Failed to parse the broker info from zookeeper


 Kafka中操作topic時 Error: Failed to parse the broker info from zookeeper

1.問題描述

 

2.問題原因

    kafka在啟動后,會將broker的信息存放在對應的zookeeper里的zNode中,默認存放在zookeeper中的路徑 /broker/ids/xxx(當然如果在kafka的server.properties文件中指定zookeeper中的路徑/kafka,那么對應的zNode也會在/kafka下創建
     當出現不能從zookeeper中解析broker的信息時,那么就是說明zookeeper中沒有對應的zNode(/broker/ids/xxx)或者有這個zNode(即ids下的broker id)但是broker id中沒有該broker的信息

For example:

方式一(以下在kafka的server.properties中指定了/kafka,那么會在zookeeper的/kafka路徑下創建/broker/ids/xxx)

1.這是在server.properties的配置
2.在zookeeper中查看對應的zNode
 

方式二(以下在kafka的server.properties中沒有指定/kafka,那么默認的路徑是在zookeeper的根路徑下創建/broker/ids/xxx)

1.這是在server.properties的配置
2.在zookeeper中查看對應的zNode
 

3.解決方案

方案一:

    重新啟動kafka集群

方案二:

    首先知道kafka集群依賴的zookeeper的集群以及zookeeper的安裝目錄;
    其次知道kafka集群的broker有那幾台(就是每一個broker的broker id是多少),同時查看kafka配置文件server.properties中連接zookeeper時有沒有指定路徑(比如/kafka)
    然后進入到$ZOOKEEPER_HOME/bin下啟動zkCli.sh,如果么有對應的zNode,那么創建( 注意是在根路徑下還是在/kafka下),然后在每一個zNode(/broker/ids/broker的id)下放入該broker的信息
在zookeeper上創建broker信息(date -d @1504856535 +"%Y-%m-%d %H:%M:%S")
set /brokers/ids/182 {"jmx_port":-1,"timestamp":"1504856535","endpoints":["PLAINTEXT://123.59.18.182:9092"],"host":"123.59.18.182","version":1,"port":9092}

set /brokers/ids/183 {"jmx_port":-1,"timestamp":"1504856535","endpoints":["PLAINTEXT://123.59.18.183:9092"],"host":"123.59.18.183","version":1,"port":9092}

set /brokers/ids/154 {"jmx_port":-1,"timestamp":"1504856535","endpoints":["PLAINTEXT://123.59.18.154:9092"],"host":"123.59.18.154","version":1,"port":9092}

set /brokers/ids/33 {"jmx_port":-1,"timestamp":"1504856535","endpoints":["PLAINTEXT://123.59.17.33:9092"],"host":"123.59.17.33","version":1,"port":9092}

set /brokers/ids/116 {"jmx_port":-1,"timestamp":"1504856535","endpoints":["PLAINTEXT://123.59.17.116:9092"],"host":"123.59.17.116","version":1,"port":9092}
 
    最后創建topic,執行成功
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM