記一次Kafka不能消費故障
阿新 • • 發佈:2018-12-10
背景:
kafka叢集機器升級,使得部分spark Streaming不能消費讀取資料
問題原因:
kafka會自動建立一個預設的topic __consumer_offsets,用於儲存offset到Kafka系統
由於我們叢集kafka節點有7個,當逐漸的下架上架機器後,使得__consumer_offsets Partition 出現Leader為-1
Kafka將直連Kafka的消費資訊記錄到了__consumer_offset這個topic中,雖然這個topic在我們的叢集中複製因子為3,但當partition所在的3個副本所在的機器都下架後,便會出現Leader為-1的情況
解決方法:
方法一:設定auto.create.topics.enable =true,刪除topic __consumer_offset即可。 (這種方法只適合於offset儲存到外部系統的情況,否則會丟失offset資訊),刪除後,重啟Kafka,會自動重建__consumer_offset,Spark Streaming消費讀取資料正常。
方法二:事前預防,在做Kafka叢集升級的時候,需要對__consumer_offset也進行資料遷移,遷移方法見