Я бью головой последние два дня на этом. Я установил кластер elasticsearch из двух узлов. Конфигурация каждого узла довольно проста:
node.name: "server1"
discovery.zen.ping.multicast.enabled: false
discovery.zen.ping.unicast.hosts: 192.168.1.212,192.168.1.213
index.store.compress.stored: True
index.store.compress.tv: True
index.number_of_shards: 5
compress.default.type: lzf
cluster.name: mycluster
discovery.zen.minimum_master_nodes: 1
discovery.zen.ping.timeout: 60
index.number_of_replicas: 1
Узлы кластера «видят» друг друга, и ожидаемые сегменты генерируются, но не реплики. Когда я использую плагин «head» (веб-интерфейс для elasticsearch), я не вижу только первичные сегменты, а не реплики. Это также подтверждается статусом elasticsearch:
curl -XGET 'http://localhost:9200/_cluster/health?pretty=true'
{
"cluster_name" : "server1",
"status" : "green",
"timed_out" : false,
"number_of_nodes" : 2,
"number_of_data_nodes" : 2,
"active_primary_shards" : 10,
"active_shards" : 10,
"relocating_shards" : 0,
"initializing_shards" : 0,
"unassigned_shards" : 0
}
Еще кое-что, что я заметил в текущих настройках elasticsearch, - это то, что реплики установлены на 0:
curl -XGET 'http://localhost:9200/_settings?pretty=true'
{
"date" : {
"settings" : {
"index" : {
"refresh_interval" : "1s",
"number_of_shards" : "5",
"creation_date" : "1447756143035",
"store" : {
"type" : "fs"
},
"uuid" : "mpVS_BB9R0WvoF0h8pFVfQ",
"version" : {
"created" : "1040299"
},
"number_of_replicas" : "0"
}
}
},
"scores" : {
"settings" : {
"index" : {
"refresh_interval" : "1s",
"number_of_shards" : "5",
"creation_date" : "1447756144186",
"store" : {
"type" : "fs"
},
"uuid" : "KUlfG4UhQfmMP1L3xQiJOQ",
"version" : {
"created" : "1040299"
},
"number_of_replicas" : "0"
}
}
}
}
Есть идеи, почему не создаются реплики?
Судя по выходным данным последней команды, у ваших двух индексов нет реплик, потому что вы не сказали им об этом.
Вам нужно будет обновить настройки индекса, изменив "number_of_replicas"
на любое количество реплик.
В Обновить настройки индексов на странице документов ES есть пример именно этого.
Это изменится все индексы до 1 реплики:
curl -XPUT 'localhost:9200/_settings' -d '
{
"index" : {
"number_of_replicas" : 1
}
}'
Это изменится просто в scores
индекс до 4 реплик:
curl -XPUT 'localhost:9200/scores/_settings' -d '
{
"index" : {
"number_of_replicas" : 4
}
}'