broker重启后可能会有异常,比如Preferred Leader由true变为flase
用kafka-eagle监控kafka运行状况,分区3所在的broker异常重启了。截图看看,分区3的Preferred Leader为false,由于Replicas为[1,3,4],leader为3,由于leader为副本3,副本3不是Replicas里的第一个副本(副本1),所以Preferred Leader为false。
有两种方法可以让Preferred Leader恢复为true
- 方法一:修改leader为副本1
- 方法二:调整Replicas的副本集顺序为[3,1,4]
我们用方法二试试
#cat move.json
{
"partitions": [
{
"topic": "data_report_h5_merged_app",
"partition": 3,
"replicas": [
3,
1,
4
]
}]
}#
/usr/local/xyhadoop/kafka/bin/kafka-reassign-partitions.sh --zookeeper localhost:2181/kafka --reassignment-json-file move.json --execute
Current partition replica assignment{"version":1,"partitions":[{"topic":"data_report_h5_merged_app","partition":2,"replicas":[1,2,3],"log_dirs":["any","any","any"]},{"topic":"data_report_h5_merged_app","partition":4,"replicas":[3,4,5],"log_dirs":["any","any","any"]},{"topic":"data_report_h5_merged_app","partition":1,"replicas":[5,1,2],"log_dirs":["any","any","any"]},{"topic":"data_report_h5_merged_app","partition":5,"replicas":[4,1,2],"log_dirs":["any","any","any"]},{"topic":"data_report_h5_merged_app","partition":7,"replicas":[1,3,4],"log_dirs":["any","any","any"]},{"topic":"data_report_h5_merged_app","partition":0,"replicas":[4,5,1],"log_dirs":["any","any","any"]},{"topic":"data_report_h5_merged_app","partition":3,"replicas":[1,3,4],"log_dirs":["any","any","any"]},{"topic":"data_report_h5_merged_app","partition":6,"replicas":[5,2,3],"log_dirs":["any","any","any"]}]}
Save this to use as the --reassignment-json-file option during rollback
Successfully started reassignment of partitions.
再看看kafka-eagle,已经 Preferred Leader恢复为true