У меня есть кластер ES с 4 узлами:
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