Kafka坑 - Couldn't find leaders for Set(kafka重启)
生活随笔
收集整理的這篇文章主要介紹了
Kafka坑 - Couldn't find leaders for Set(kafka重启)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SparkStreaming程序從Kafka讀數據的程序運行期間報了如下異常:
org.apache.spark.SparkException: ArrayBuffer(org.apache.spark.SparkException: Couldn't find leaders for Set有可能是kafka進程的問題,重新啟動即可,親自試有效。
這個異常意思是Spark找不到partition的Leader。查看監控后發現,在異常發生的時間點,有一個Broker掛掉了??墒菍猅opic的replica設置的2,就算掛掉一個,應該有replica頂上啊。后來發現,這是由于存在Partition的Replica沒有跟Leader保持同步更新,也就是通常所說的“沒追上”。 查看某個Topic是否存在沒追上的情況:
觀察其中的Replicas和Isr是否一致,如果出現Isr少于Replicas,則對應Partition存在沒追上的情況
解決方法:
增大num.replica.fetchers的值,此參數是Replicas從Leader同步數據的線程數,默認為1,增大此參數即增大了同步IO。經過測試,增大此值后,不再有追不上的情況
確定問題已解決的方法:
啟動出現問題的SparkStreaming程序,在程序正常計算的狀態下,kill掉任意一個Broker后,再觀察運行情況。在增大同步線程數之前,kill后SparkStreaming會報同樣的異常,而增大后程序依然正常運行,問題解決。
?
總結
以上是生活随笔為你收集整理的Kafka坑 - Couldn't find leaders for Set(kafka重启)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 农行金穗惠农卡和普通卡有什么区别,有两点
- 下一篇: linux中的mysql启动失败(一直连