AWS Managed elasti c Восстановление поиска - узел не соответствует настройке индекса - PullRequest
2 голосов
/ 19 июня 2020

Я пытаюсь восстановить моментальный снимок ElasticSearch, взятый из AWS управляемого поиска elasti c. Версия 5.6. Тип экземпляра i3.2xlarge.

При восстановлении на виртуальной машине статус кластера сразу стал красным, а все сегменты не были назначены.

{
  "cluster_name" : "es-cluster",
  "status" : "red",
  "timed_out" : false,
  "number_of_nodes" : 8,
  "number_of_data_nodes" : 5,
  "active_primary_shards" : 0,
  "active_shards" : 0,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 480,
  "delayed_unassigned_shards" : 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch" : 0,
  "task_max_waiting_in_queue_millis" : 0,
  "active_shards_percent_as_number" : 0.0
}

Когда я использую API объяснения распределения, я получил следующий ответ:

 {
      "node_id" : "3WEV1tHoRPm6OguKyxp0zg",
      "node_name" : "node-1",
      "transport_address" : "10.0.0.2:9300",
      "node_decision" : "no",
      "deciders" : [
        {
          "decider" : "replica_after_primary_active",
          "decision" : "NO",
          "explanation" : "primary shard for this replica is not yet active"
        },
        {
          "decider" : "filter",
          "decision" : "NO",
          "explanation" : "node does not match index setting [index.routing.allocation.include] filters [instance_type:\"i2.2xlarge OR i3.2xlarge\"]"
        },
        {
          "decider" : "throttling",
          "decision" : "NO",
          "explanation" : "primary shard for this replica is not yet active"
        }
      ]
    },

Это что-то странное, и я никогда с этим не сталкивался. Как бы то ни было, снимок сделан, как я могу проигнорировать этот параметр при восстановлении? Даже я попробовал выполнить приведенный ниже запрос, но проблема все та же.

curl -X POST "localhost:9200/_snapshot/restore/awsnap/_restore?pretty" -H 'Content-Type: application/json' -d'
{"ignore_index_settings": [
    "index.routing.allocation.include"
  ]
}'

1 Ответ

1 голос
/ 19 июня 2020

Я нашел причину и решение.

Подробные инструкции по устранению неполадок здесь https://thedataguy.in/restore-aws-elasticsearch-snapshot-failed-index-settings/

Но оставьте этот комментарий здесь, чтобы другие могли извлечь из него пользу.

Это AWS специфическая c вещь, поэтому я решил ее решить.

curl -X POST "localhost:9200/_snapshot/restore/awsnap/_restore?pretty" -H 'Content-Type: application/json' -d'
{"ignore_index_settings": [
    "index.routing.allocation.include.instance_type"
  ]
}
'
...