我有一个包含两个节点和八个分片的Elasticsearch集群。我处于这样的情况:所有原色都在一个节点上,所有副本都在另一个节点上。
运行命令:
http://xx.xx.xx.1:9200/_cat/shards
返回此结果:
myindex 2 r STARTED 16584778 1.4gb xx.xx.xx.2 node2
myindex 2 p STARTED 16584778 1.4gb xx.xx.xx.1 node1
myindex 1 r STARTED 16592755 1.4gb xx.xx.xx.2 node2
myindex 1 p STARTED 16592755 1.4gb xx.xx.xx.1 node1
myindex 3 r STARTED 16592009 1.4gb xx.xx.xx.2 node2
myindex 3 p STARTED 16592033 1.4gb xx.xx.xx.1 node1
myindex 0 r STARTED 16610776 1.3gb xx.xx.xx.2 node2
myindex 0 p STARTED 16610776 1.3gb xx.xx.xx.1 node1
我试图通过发布此命令来交换某些分片:
http://xx.xx.xx.1:9200/_cluster/reroute?explain
与这个机构:
{
"commands" : [
{
"move" : {
"index" : "myindex",
"shard" : 1,
"from_node" : "node1",
"to_node" : "node2"
}
},
{
"allocate_replica" : {
"index" : "myindex",
"shard" : 1,
"node" : "node1"
}
}
]
}
它不起作用,唯一的" NO"我在解释清单中列出的是:
{
"decider": "same_shard",
"decision": "NO",
"explanation": "the shard cannot be allocated on the same node id [xxxxxxxxxxxxxxxxxxxxxx] on which it already exists"
},
如果这是实际错误,我并不完全清楚,但没有其他负面反馈。我怎样才能解决这个问题并移动我的碎片?
答案 0 :(得分:1)
这是预期的。 为什么要这么做? Primaries和复制品正在做同样的工作。
您认为这会解决哪些问题?