集群里面kafka報錯:
Controller 219 epoch 110 failed to change state for partition maxwell_atlas-0 from OfflinePartition to OnlinePartition
kafka.common.stateChangeFailedException: Failed to elect leader for partition maxwell_atlas-0 under strategy OfflinePartitionLeaderElectionStrategy

錯誤原因:
新增加的副本的offset比leader的新,所以在elecct的時候,報錯。
解決辦法:文章來源:http://www.zghlxwxcb.cn/news/detail-609015.html
kafka自帶平衡topic的腳本,只需要啟動一遍即可。來到kafka的bin目錄下執(zhí)行命令:
kafka-preferred-replica-election.sh --bootstrap-server ip:2181
然后重啟kafka。
然而實際,重啟好了不到5分鐘,整個集群依然報警了。
再看日志文件,多了些其他報錯:
[Controller id=219] Partition __consumer_offsets-8 failed to complete preferred replica leader election to 139. Leader is still 141
而在仔細檢查所有kafka的實例,發(fā)現(xiàn)現(xiàn)有的Kafka.BrokerId有:140,141,142,143,219,而選舉leader的id卻是139。都可以盲猜一手,現(xiàn)在的219就是之前的139。
從這兒也可以推斷出:
現(xiàn)有的5個節(jié)點的partition都不是最新的,所以有主控制器Offline,因為選不出leader
具體選不出leader的原因,應(yīng)該就是原來有brokerid=139的,現(xiàn)在沒了,而replic partitions,isr里還是原來的139,所以現(xiàn)在的140,141,142,143,219里選舉不出139的為leader。
解決辦法:
將219所在brokerid改為139后,重啟kafka。
重啟產(chǎn)生新的報錯:
Fatal error during KafkaServer startup. Prepare to shutdown.
Configured broker.id 139 doesn't match stored broke.id 219 in meta.properties.If you moved your data, make sure your configured broker.id matches.
問題原因:
啟動kafka時,配置文件中的broke.id和元數(shù)據(jù)里保存的broker.id不一致導(dǎo)致的啟動失敗。
解決辦法:
前去kafka的數(shù)據(jù)目錄下找到meta.properties文件,修改broker.id=219為139,然后重啟。再按上面那個報錯處理topic。文章來源地址http://www.zghlxwxcb.cn/news/detail-609015.html
到了這里,關(guān)于Kafka報錯:Controller 219 epoch 110 failed to change state for partition的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!