Короче говоря, нет, вы не можете решить, какой из основных подходящих узлов станет главным, потому что главный узел выбран (он был в ES 1.7 , он все еще находится в ES6.2 ).
Нет, нельзя полагаться на то, что Elasticsearch настолько умен, чтобы всегда принимать узел без данных в качестве активного мастера.Фактически, на данный момент (6.2) они рекомендуют иметь выделенных главных узлов (то есть тех, которые не выполняют никаких операций с данными):
Чтобы убедиться, что ваш главный узелстабильный и не испытывающий нагрузки, в более крупном кластере хорошей идеей будет разделение ролей между выделенными узлами, отвечающими требованиям мастера, и выделенными узлами данных.
... Для стабильности кластера, который управляет, важно-приемлемые узлы выполняют как можно меньше работы.
(обратите внимание, что они говорят о "большем кластере".)
Я могу только предположить, что это также верно для более раннихтолько что вернулись версии и документация.
Возникла проблема с опубликованной вами конфигурацией.Хотя у вас много узлов, потеря одного (главного узла, node-01
) сделает ваш кластер неработоспособным.Чтобы избежать этой ситуации, вы можете выбрать один из следующих вариантов:
- использовать стратегию по умолчанию и сделать все узлы данных узлами и главными узлами;
- сделать набор извыделенные узлы только для мастера (по крайней мере 3 из них).
Было бы неплохо узнать причину, по которой настройки по умолчанию ES не достаточно хороши для вас, потому что обычно они достаточно хороши.
Однако, если это тот случай, когда вам нужен выделенный мастер-узел, убедитесь, что у вас есть по крайней мере 3, и что discovery.zen.minimum_master_nodes
достаточно, чтобы избежать ситуации "разделения мозга".:
discovery.zen.minimum_master_nodes = (master_eligible_nodes / 2) + 1
Надеюсь, это поможет!