Solr clusterstate.json损坏了。手动恢复可能吗?

时间:2013-10-15 02:49:45

标签: hadoop solr lucene solrj

我坚持使用clusterstate.json(附后附件)中的范围为null值

"shard5":{
        "range":null,
        "state":"active",
        "replicas":{"core_node1":{
            "state":"active",
            "core":"Web_shard5_replica1",
            "node_name":"domain-name.com:1981_solr",
            "base_url":"http://domain-name.com:1981/solr",
            "leader":"true"}}}},
    "router":"compositeId"},

我尝试使用zookeeper cli来改变它,但它无法改变。我试图找到这个文件,但没有在任何地方找到它。

请告诉我如何将范围从null更改为有意义的内容?我有我需要的范围,所以如果我能找到该文件,也许我可以手动更改它。

我的下一个问题是 - 我们是否可以捕获所有范围,我的意思是如果事情与任何其他范围不匹配,那么插入此分片中......这可能吗?

请提供建议。

2 个答案:

答案 0 :(得分:1)

以下是使用Solr提供的zkcli.sh在zookeeper中手动编辑和更新clusterstate.json的示例。

  1. 下载clusterstate.json:

    zkcli.sh -z zk-host-name -cmd getfile /clusterstate.json clusterstateLoca.json

  2. 编辑下载的closterstateLocal.json并保存

  3. 从ZK中删除陈旧的clusterstate.json

    zkcli.sh -z zk-host-name -cmd clear /clusterstate.json

  4. 将修改后的clusterstate.json上传到ZK:

    zkcli.sh -z zk-host-name -cmd putfile /clusterstate.json ./clusterstateLocal.json

答案 1 :(得分:0)

我通过创建重复的分片(副本)和解决方案来解决上述问题。使用以下内容创建 -

http://domain-name.com:1981/solr/admin/collections?action=CREATE&name=image&numShards=5&replicationFactor=2&maxShardsPerNode=2

也许它会帮助其他人......我有一个自定义排名算法,不确定这是否影响了这一点,但现在似乎解决了