2016-11-25 3 views
3

Я настраиваю кластер elasticsearch (5.0.1).Узлы не присоединяются к кластеру: NotMasterException (ошибка Weird master election)

Он имеет три основных, имеющих право на узлы:

el-m01 
el-m02 
el-m03 

кластера происходит сбой в сборке, и каждый главный узел получает следующий NotMasterException исключение в журналах:

[2016-11-21T15:24:13,274][INFO ][o.e.d.z.ZenDiscovery  ] [el-m01] failed to send join request to master [{el-m02}{bBhsu3fJSj-MyiWJGhQmog}{_IzdeUd4Sv6g-rhemGjEVQ}{192.168.110.118}{192.168.110.118:9300}{rack=r1}], reason [RemoteTransportException[[el-m02][192.168.110.118:9300][internal:discovery/zen/join]]; nested: NotMasterException[Node [{el-m02}{bBhsu3fJSj-MyiWJGhQmog}{_IzdeUd4Sv6g-rhemGjEVQ}{192.168.110.118}{192.168.110.118:9300}{rack=r1}] not master for join request]; ], tried [3] times 

Включение журналов отладки разрешено я должен понимать следующее:

Ведущие выборы происходят, и это успех. Однако, хотя каждый узел выбрал мастер, ни один узел не считает, что он мастер. т.е.

  • эль-m01 считает эль-M02 является ведущим
  • эль-m02 считает эль-M03 является ведущим
  • эль-M03 считает эль-m01 является мастером

Что здесь происходит?

ответ

10

Вот так: Клонирование виртуальной машины для получения всех мастеров, каждый узел имеет тот же идентификатор узла.

Это можно проверить с помощью следующей команды, в котором перечислены все узлы идентификаторы:

GET /_cat/nodes?v&h=id,ip,name&full_id=true 

Обратите внимание, что поскольку кластер не сформирован, каждый узел должен быть запрошены в индивидуальном порядке, то есть:

curl 192.168.110.111:9200/_cat/nodes?v&h=id,ip,name&full_id=true 
curl 192.168.110.112:9200/_cat/nodes?v&h=id,ip,name&full_id=true 
(...) 

Это плохо. Идентификаторы узлов должны быть уникальными.

Для решения этой проблемы вам необходимо удалить индексы (в /var/lib/elasticsearch) на каждом узле. Это будет удалить все данные в elasticsearch, а также сбросить идентификаторы узлов.

Чтобы избежать этой проблемы, в первую очередь, вы можете:

  • A. установить elasticsearch после того клонировало VMS
  • B. использовать автоматизированный инструмент для Линка анзибля или кукольного управлять elasticsearch.
+1

голосование за решение. Он решил создать кластер после 6 дней усилий. благодаря –