Назад | Перейти на главную страницу

elasticsearch не создает осколки реплик

Я бью головой последние два дня на этом. Я установил кластер 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
  }
}'