topic的leader显示为none的解决办法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/love910809/article/details/79977275

受此博文启发:
http://blog.selfup.cn/1698.html

以单副本,3分区示例:
kafka在zk中存放路径为 / (路径自行验证)

1、查看kafka的topic详细信息
这里写图片描述
2、查看zk节点
这里写图片描述
指定节点内部为空。
查看其它同级节点发现有分区信息:
这里写图片描述
3、创建分区信息
进入zookeeper-client:
首先查看节点/controller_epoch的值:
get /controller_epoch
得到值1
create /brokers/topics/testDelete3/partitions null根据第一步中的分区情况,共有0,1,2三个分区,分别创建这三个节点create /brokers/topics/testDelete3/partitions/0 nullcreate /brokers/topics/testDelete3/partitions/1 nullcreate /brokers/topics/testDelete3/partitions/2 null create /brokers/topics/testDelete3/partitions/0/state {“controller_epoch”:1,”leader”:1003,”version”:1,”leader_epoch”:2,”isr”:[1003]}

create /brokers/topics/testDelete3/partitions/1/state {“controller_epoch”:1,”leader”:1001,”version”:1,”leader_epoch”:3,”isr”:[1001]}create /brokers/topics/testDelete3/partitions/2/state {“controller_epoch”:1,”leader”:1002,”version”:1,”leader_epoch”:4,”isr”:[1002]}

注意:

这里的”controller_epoch”:1值填入的是“get /controller_epoch”得到的值。

leader的值与第一步中topic信息内的replicas相关,本例中相同,若为多副本,指定replicas其中一个为leader即可

version默认为1即可

leader_epoch” 的值不能相同

isl指的是有效选择列表,默认与replicas值相同

4、查看leader
这里写图片描述
5、生产消费检验
生产数据./kafka-console-producer.sh –broker-list dev-kafka01:6667,dev-kafka02:6667,dev-kafka03:6667 –topic testDelete3

消费数据:/usr/hdp/current/kafka-broker/bin/kafka-console-consumer.sh –zookeeper dev-zookeeper01:2181 –topic testDelete3
生产可以正常生产,并且在消费端可以正常消费即可。

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页