ElasticSearch未分配的碎片

时间:2015-05-26 14:18:04

标签: elasticsearch

我在弹性搜索群集中有2个节点,8个CPU和16 GB RAM。我已将ES_HEAP_SIZE设置为10 GB。

在我设置的两台机器上的yml配置文件中

index.number_of_shards: 5
index.number_of_replicas: 1

这两台机器都被允许作为master / data true.Now问题是我的第0个节点1的分片在重新启动后被取消分配。我试过了

for shard in $(curl -XGET http://localhost:9201/_cat/shards | grep UNASSIGNED | awk '{print $2}'); do
    echo "processing $shard"
    curl -XPOST 'localhost:9201/_cluster/reroute' -d '{
        "commands" : [ {
              "allocate" : {
                  "index" : "inxn", 
                  "shard" : '$shard', 
                  "node" : "node1", 
                  "allow_primary" : true
              }
            }
        ]
    }'
done

它没有给出任何错误,并且表示确认为true并显示shard初始化的状态,但是当我查看碎片时它仍然未初始化。

我在设置方面做错了吗?我应该将两个节点都设为master / data true,并在两台机器上设置shard:5和replica:1

非常感谢任何帮助或建议。

由于

1 个答案:

答案 0 :(得分:0)

我做了一个解决问题的技巧,我在node1上的索引下重命名为0文件夹,并在node1上强制分配第0个分片,它对我有效。

curl -XPOST 'localhost:9201/_cluster/reroute' -d '{
        "commands" : [ {
              "allocate" : {
                  "index" : "inxc", 
                  "shard" : 0, 
                  "node" : "node1", 
                  "allow_primary" : true
              }
            }
        ]
    }'