Kafka生产集群中有一台机器cdh-003由于物理故障原因挂掉了,并且系统起不来了,使得线上的spark Streaming实时任务不能正常消费,重启实时任务都不行。查看kafka topic状态,发现broker Leader出现-1的情况,如下图
创新互联公司专注于吉安网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供吉安营销型网站建设,吉安网站制作、吉安网页设计、吉安网站官网定制、小程序制作服务,打造吉安网络公司原创品牌,更为您提供吉安网站排名全网营销落地服务。
Kafka Broker Leader 为-1,表示有partition在选举Leader的时候失败了,因此引起了消费该Topic的实时任务都出现了异常,经过排除发现挂掉的cdh-003机器正好是broker id为257。(但为何192没有被选举为leader呢??)
kafka partition状态信息存在Zookeeper上,我的环境目录是 /kafka/brokers/topics/,具体操作如下:
[zk: localhost:2181(CONNECTED) 2] get /kafka/brokers/topics/mds001/partitions/1/state
{"controller_epoch":87,"leader":-1,"version":1,"leader_epoch":96,"isr":[257]}
[zk: localhost:2181(CONNECTED) 3] set /kafka/brokers/topics/mds001/partitions/1/state {"controller_epoch":87,"leader":192,"version":1,"leader_epoch":96,"isr":[192]}
[zk: localhost:2181(CONNECTED) 4] get /kafka/brokers/topics/mds001/partitions/1/state
{"controller_epoch":87,"leader":192,"version":1,"leader_epoch":96,"isr":[192]}
[zk: localhost:2181(CONNECTED) 5]