在代理意外关闭后,即使所有代理都已备份并正在运行,某些主题分区仍保持脱机状态。有人知道这个问题的解决方案吗?
2019-05-17T10:40:32,379 [myid:]-INFO [controller-event-thread:Logging $ class @ 70]-[Controller 3]:开始为分区[topic,9]选择首选副本领导者/ p>
2019-05-17T10:40:32,379 [myid:]-INFO [controller-event-thread:Logging $ class @ 70]-[Controller 3上的分区状态机]:将状态更改为OnlinePartition分区[主题] ,9]
2019-05-17T10:40:32,380 [myid:]-信息[controller-event-thread:Logging $ class @ 70]-[PreferredReplicaPartitionLeaderSelector]:分区[topic,9]的当前领导者-1不是首选副本。触发首选副本领导者选举
2019-05-17T10:40:32,380 [myid:]-警告[controller-event-thread:Logging $ class @ 85]-[Controller 3]:分区[topic,9]无法完成首选副本领导者选举。领导者是-1
答案 0 :(得分:0)
我和我的同事刚刚遇到了类似的问题,但是,我们试图删除具有离线分区的主题。问题的关键在于你的领导是-1。
我们解决这个问题的方法是手动编辑 Zookeeper 中的 znode,将领导者指向在线的代理并滚动重启集群。使用 Zookeeper cli 获得以下 znode:
/brokers/topics/<my-topic>/partitions/0/state.
在我们的例子中它返回:
{"controller_epoch":52,"leader":-1,"version":1,"leader_epoch":35,"isr":[5]}
注意领导者是-1。您可以尝试更新 znode,将领导者设置为启动并运行的代理。