收集RELOAD后,SolrCloud节点关闭

时间:2013-09-30 14:10:21

标签: tomcat configuration solr apache-zookeeper solrcloud

我使用Solr 4.4,Zookeeper 3.4.5和Tomcat 7.

CLUSTER SETUP:3个分片和3个副本。共有6个Solr实例。

群集已启动并正在运行。一切似乎都没问题。在日志中没有任何关键,除了关于弃用类的警告很少。

我如何进行配置更新:

  1. 运行以下命令:

      

    java -classpath。:solr-jars / * org.apache.solr.cloud.ZkCLI -cmd upconfig -zkhost ZOOKEEPER_HOST:PORT -d solr-conf -confname myconf

  2. 检查配置是否已在Zookeeper中更新:

      

    /var/zookeeper/bin/zkCli.sh ZOOKEEPER_HOST:PORT

         

    ls /configs/myconfig/schema.xml

         

    ls /configs/myconfig/solrconfig.xml

  3. 通过Solr Collection API重新加载集合

    curl HOST / solr / admin / collections?action = RELOAD& name = collection1

  4. 配置更新似乎已成功应用于所有节点。但有时群集中的一个节点会关闭(在Solr Admin UI中标记为棕色)。 Tomcat重启,集合重装无助于恢复此节点。

    来自日志的错误消息:

    SyncStrategy - No UpdateLog found - cannot sync
    

    问题:

    1. 有什么方法可以让失败的节点恢复生效?当然,无需删除所有数据。
    2. 在Zookeeper中更新后,强制Solr节点接受配置的正确方法是什么?如果没有Tomcat重启,可能(它是一个生产系统)
    3. (optinal)一般来说,您对SolrCloud的稳定性和可预测性有何看法?在与SC合作的过程中,我从其他人那里发现了很多抱怨和问题。看起来不是一个好兆头。
    4. 更新1 看起来错误消息与实际问题无关。配置事务日志后,此错误消失。但收集重新加载后,很少有节点仍然停止运行。

      将其恢复的唯一方法是直接编辑Zookeeper中的clusterstate.json,并将节点状态更改为“active”。之后,节点似乎还可以稳定。

1 个答案:

答案 0 :(得分:0)

我只能回答第二个问题(如果我理解正确的话)。 将配置上传到ZooKeeper后更改配置的正确方法是使用“linkconfig”。可能是这样的:

java -classpath .:solr-jars/* org.apache.solr.cloud.ZkCLI -cmd linkconfig -zkhost ZOOKEEPER_HOST:PORT -confname myconf -collection collection1