ZooKeeper 在网络中断后显示不存在的节点
ZooKeeper showing non-existent node after network outage
我有一个带 ZooKeeper 的 3 盒 Solr 云设置,每个服务器都有一个 Solr 和 ZK 安装(我知道不完美)。一切正常,直到今天早上网络中断。
Post 中断框 A 和 C 按预期恢复。框 B 没有,Solr 服务的重新启动显示了一个错误,指出
A previous ephemeral live node still exists. Solr cannot continue.
在查看 B 节点 ZooKeeper Live_Nodes
路径时,Solr 安装已经显示为活动的实时节点,即使 Solr 已关闭。此节点未显示在 Live_nodes
路径中的方框 A 和 B 中。我也无法 delete
或 rmr
这个节点,因为 ZooKeeper 告诉它它不存在。
我已经尝试 Solr stop -all
以防有一个我没有看到的隐藏进程,但 Solr 声明没有实例 运行。
下一步是在 B 上安装一个新的 ZooKeeper 实例。之后 ls /live_nodes
继续显示这个不存在的 solr 实例。
感谢任何帮助。谢谢。
仅供参考,我继续进行故障排除并最终重建了所有 3 个 ZooKeeper 节点。这导致我出现了一个单独的错误,显示集合碎片已损坏。在对 'clusterstate.json' 文件进行故障排除后,最终的解决方法是创建一个具有单独名称的重复集合,然后创建一个用于重定向流量的别名。在此之后,我能够删除损坏的集合。
我认为重复的集合和别名会一直修复它。
希望这对以后的人有所帮助。
谢谢。
我们最近遇到了类似的问题,并且能够通过执行下面列出的以下操作从 /solr/live_nodes 中删除数据,然后 solr 能够启动并从 OP 中解决问题。
添加这个希望它能在将来帮助其他人。
示例数据 ZK shell in /solr/live_nodes:
[solr.node1.sp.local:8983_solr, solr.node2.sp.local:8983_solr]
再次创建 solr 节点(失败,节点已存在):
create /solr/live_nodes/solr.node1.sp.local:8983_solr
create /solr/live_nodes/solr.node2.sp.local:8983_solr
在节点上设置一些数据:
set /solr/live_nodes/solr.node1.sp.local:8983_solr "hello"
set /solr/live_nodes/solr.node2.sp.local:8983_solr "hello"
删除节点:
delete /solr/live_nodes/solr.node1.sp.local:8983_solr
delete /solr/live_nodes/solr.node1.sp.local:8983_solr
之后我们能够启动 solr 并且该问题得到解决并且 /solr/live_nodes 被重新填充。
我有一个带 ZooKeeper 的 3 盒 Solr 云设置,每个服务器都有一个 Solr 和 ZK 安装(我知道不完美)。一切正常,直到今天早上网络中断。
Post 中断框 A 和 C 按预期恢复。框 B 没有,Solr 服务的重新启动显示了一个错误,指出
A previous ephemeral live node still exists. Solr cannot continue.
在查看 B 节点 ZooKeeper Live_Nodes
路径时,Solr 安装已经显示为活动的实时节点,即使 Solr 已关闭。此节点未显示在 Live_nodes
路径中的方框 A 和 B 中。我也无法 delete
或 rmr
这个节点,因为 ZooKeeper 告诉它它不存在。
我已经尝试 Solr stop -all
以防有一个我没有看到的隐藏进程,但 Solr 声明没有实例 运行。
下一步是在 B 上安装一个新的 ZooKeeper 实例。之后 ls /live_nodes
继续显示这个不存在的 solr 实例。
感谢任何帮助。谢谢。
仅供参考,我继续进行故障排除并最终重建了所有 3 个 ZooKeeper 节点。这导致我出现了一个单独的错误,显示集合碎片已损坏。在对 'clusterstate.json' 文件进行故障排除后,最终的解决方法是创建一个具有单独名称的重复集合,然后创建一个用于重定向流量的别名。在此之后,我能够删除损坏的集合。
我认为重复的集合和别名会一直修复它。
希望这对以后的人有所帮助。 谢谢。
我们最近遇到了类似的问题,并且能够通过执行下面列出的以下操作从 /solr/live_nodes 中删除数据,然后 solr 能够启动并从 OP 中解决问题。
添加这个希望它能在将来帮助其他人。
示例数据 ZK shell in /solr/live_nodes:
[solr.node1.sp.local:8983_solr, solr.node2.sp.local:8983_solr]
再次创建 solr 节点(失败,节点已存在):
create /solr/live_nodes/solr.node1.sp.local:8983_solr
create /solr/live_nodes/solr.node2.sp.local:8983_solr
在节点上设置一些数据:
set /solr/live_nodes/solr.node1.sp.local:8983_solr "hello"
set /solr/live_nodes/solr.node2.sp.local:8983_solr "hello"
删除节点:
delete /solr/live_nodes/solr.node1.sp.local:8983_solr
delete /solr/live_nodes/solr.node1.sp.local:8983_solr
之后我们能够启动 solr 并且该问题得到解决并且 /solr/live_nodes 被重新填充。