我有一个具有4个节点的ES集群:
number_of_replicas: 1
search01 - master: false, data: false
search02 - master: true, data: true
search03 - master: false, data: true
search04 - master: false, data: true
我不得不重新启动search03,当它回来时,它没有问题地重新加入集群,但是留下了7个未分配的碎片。
{
"cluster_name" : "tweedle",
"status" : "yellow",
"timed_out" : false,
"number_of_nodes" : 4,
"number_of_data_nodes" : 3,
"active_primary_shards" : 15,
"active_shards" : 23,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 7
}
现在,我的集群处于黄色状态。解决此问题的最佳方法是什么?
- 删除(取消)分片?
- 将分片移动到另一个节点?
- 将分片分配给节点?
- 将“ number_of_replicas”更新为2?
- 还有其他东西吗?
有趣的是,当添加新索引时,该节点开始在该节点上工作并与集群的其余部分配合良好,它只是留下了未分配的碎片。
追问问题:我是不是做错了什么导致该事情首先发生?我对重启节点时以这种方式运行的群集没有太大的信心。
注意:如果出于某种原因运行单个节点群集,则可能只需要执行以下操作:
curl -XPUT 'localhost:9200/_settings' -d '
{
"index" : {
"number_of_replicas" : 0
}
}'
{ "error" : "ElasticsearchIllegalArgumentException[[allocate] failed to find [logstash-2015.01.05][1] on the list of unassigned shards]", "status" : 400 }
即使我看到碎片是ES-Head中未分配的碎片之一