kafka broker Leader -1引發spark Streaming不能消費的故障解決方法


1、問題描述:
Kafka生產集羣中有一臺機器cdh-003因爲物理故障緣由掛掉了,而且系統起不來了,使得線上的spark Streaming實時任務不能正常消費,重啓實時任務都不行。查看kafka topic狀態,發現broker Leader出現-1的狀況,以下圖spa

 

 

2、問題分析
Kafka Broker Leader 爲-1,表示有partition在選舉Leader的時候失敗了,所以引發了消費該Topic的實時任務都出現了異常,通過排除發現掛掉的cdh-003機器正好是broker id爲257。(但爲什麼192沒有被選舉爲leader呢??).net

 

3、解決方法:修改kafka元數據,手動指定kakfa Leader。
kafka partition狀態信息存在Zookeeper上,個人環境目錄是 /kafka/brokers/topics/,具體操做以下:blog

一、查看leader爲-1的partition狀態
[zk: localhost:2181(CONNECTED) 2] get /kafka/brokers/topics/mds001/partitions/1/stateget

{"controller_epoch":87,"leader":-1,"version":1,"leader_epoch":96,"isr":[257]}kafka

二、強制修改partition leader爲192
[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]}it

三、查看修改是否成功
[zk: localhost:2181(CONNECTED) 4] get /kafka/brokers/topics/mds001/partitions/1/statespark

{"controller_epoch":87,"leader":192,"version":1,"leader_epoch":96,"isr":[192]}io

[zk: localhost:2181(CONNECTED) 5]集羣

 

四、重啓Kafka服務 (必須重啓,我最開始就是沒有重啓,使得SS消費依然不正常)
五、重啓Spark Streaming實時任務,此時消費正常,則完美解決
————————————————
版權聲明:本文爲CSDN博主「微步229」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。
原文連接:https://blog.csdn.net/lingbo229/article/details/90442171方法

相關文章
相關標籤/搜索