【问题标题】:ZooKeeper showing non-existent node after network outageZooKeeper 在网络中断后显示不存在的节点
【发布时间】:2022-01-27 08:05:06
【问题描述】:

我有一个带有 ZooKeeper 的 3 盒 Solr 云设置,每个服务器都有一个 Solr 和 ZK 安装(我知道并不完美)。一切正常,直到今天早上网络中断。

邮政中断箱 A 和 C 已按预期恢复。 Box B 没有,Solr 服务的重新启动显示了一个错误,指出 A previous ephemeral live node still exists. Solr cannot continue.

在查看 B 节点 ZooKeeper Live_Nodes 路径时,即使 Solr 已关闭,Solr 安装已经显示为活动的活动节点。此节点未显示在 Live_nodes 路径中的框 A 和 B 上。我也无法deletermr 这个节点,因为 ZooKeeper 告诉它它不存在。

我尝试了Solr stop -all,以防有一个我没有看到的隐藏进程,但 Solr 指出没有实例正在运行。

下一步是在 B 上安装一个新的 ZooKeeper 实例。之后,ls /live_nodes 继续显示这个不存在的 solr 实例。

感谢任何帮助。谢谢。

【问题讨论】:

  • 我应该补充一点,我们的目标是从 ZooKeeper 中删除坏节点,以便我们可以启动 Solr 并让一切重新运行。再次感谢。

标签: apache solr apache-zookeeper solrcloud


【解决方案1】:

仅供参考,我继续进行故障排除,最终重建了所有 3 个 ZooKeeper 节点。这导致我出现一个单独的错误,即显示收集碎片已损坏。在对“clusterstate.json”文件进行故障排除后,最终的修复是创建一个具有单独名称的重复集合,然后是用于重定向流量的别名。在此之后,我能够删除损坏的集合。

我认为重复的集合和别名会一直修复它。

希望这对将来的某人有所帮助。 谢谢。

【讨论】:

    【解决方案2】:

    我们最近遇到了类似的问题,并且能够通过执行下面列出的以下操作从 /solr/live_nodes 中删除数据,然后 solr 能够启动并解决来自 OP 的问题。

    添加这个是希望它在未来对其他人有所帮助。

    /solr/live_nodes 中的示例数据 ZK shell:

    [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。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 2019-04-11
      • 1970-01-01
      • 2018-06-04
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      相关资源
      最近更新 更多