Автоматичното ребалансиране на парчета отговаря на ограничения и правила като филтриране на разпределението и принудително осъзнаване, което води до възможно най-ефективния и добре балансиран клъстер.
ЗАБЕЛЕЖКА: Не бъркайте преразпределението на парчета, което е процесът на намиране и преместване на неразпределени парчета към възлите, в които се намират, с повторно балансиране. Ребалансирането отнема зададени парчета и ги премества равномерно към различни възли, като целта е равното разпределение на парчета на възел.
Как да активирам автоматичното ребалансиране
За да активираме автоматичното балансиране на клъстера в Elasticsearch, можем да използваме заявката PUT to_cluster на крайната точка на API и да добавим необходимите настройки.
Наличните настройки за динамично ребалансиране на парчета включват:
- клъстер.маршрутизиране.ребаланс.активиране: Контролира автоматичното ребалансиране за различни видове парчета, като:
- Всичко: Наборите позволяват ребалансиране на парчета за всички индекси.
- Нито един: Деактивира ребаланса на парчета за всички индекси.
- Реплики: Допуска се само ребалансиране на реплики.
- Основна: Разрешено е само ребалансиране на първичен парче.
- клъстер.маршрутизиране.разпределяне.allow_rebalance: Задава стойността за ребалансиране на парчета. Опциите включват:
- Винаги: Позволява ребалансиране за неопределено време.
- Index_primaries_active: Позволява ребалансиране само когато са разпределени всички първични парчета в клъстера.
- Индекси_всички_активни: Позволява ребалансиране, когато са разпределени само парчетата в клъстера. Това включва както първичните, така и репликите.
- клъстер.маршрутизиране.разпределяне.клъстер.едновременно.ребаланс: Тази опция задава броя на едновременните ребаланси, разрешени в клъстера. Стойността по подразбиране е 2.
Обмислете заявката по-долу, за да разрешите автоматично балансиране на парчета за клъстера.
PUT / _cluster / настройки"упорито":
"клъстер.маршрутизиране.ребаланс.разреши ":" първични ",
"клъстер.маршрутизиране.разпределяне.allow_rebalance ":" винаги " ,
"клъстер.маршрутизиране.разпределяне.cluster_concurrent_rebalance ":" 2 "
Следва командата cURL:
curl -XPUT "http: // localhost: 9200 / _cluster / settings" -H 'Content-Type: application / json' -d '"persistent": "клъстер.маршрутизиране.ребаланс.разреши ":" първични "," клъстер.маршрутизиране.разпределяне.allow_rebalance ":" винаги "," клъстер.маршрутизиране.разпределяне.cluster_concurrent_rebalance ":" 2 " 'Тази команда трябва да върне отговор, тъй като JSON обектът потвърждава актуализираните настройки.
„Признато“: вярно,
"упорито":
"клъстер":
"маршрутизация":
"rebalance":
"enable": "първични"
,
"разпределяне" :
"allow_rebalance": "винаги",
"cluster_concurrent_rebalance": "2"
,
"преходно":
Ръчно балансиране на индекса
Можете също така да ребалансирате парче ръчно за определен индекс. Не бих препоръчал тази опция, защото опциите за ребалансиране по подразбиране на Elasticsearch са много ефективни.
Ако обаче възникне необходимост от извършване на ръчно балансиране, можете да използвате следната заявка:
„Признато“: вярно,
"упорито":
"клъстер":
"маршрутизация":
"rebalance":
"enable": "първични"
,
"разпределяне" :
"allow_rebalance": "винаги",
"cluster_concurrent_rebalance": "2"
,
„преходно“:
Командата cURL е:
curl -XPOST "http: // localhost: 9200 / _cluster / reroute" -H 'Content-Type: application / json' -d '"команди": ["move": "index": "kibana_sample_data_flights", "shard": 0, "from_node": "instance-0000000001", "to_node": "instance-0000000002"] 'ЗАБЕЛЕЖКА: Имайте предвид, че ако извършите ръчен баланс, Elasticsearch може автоматично да премести парчетата, за да осигури възможно най-добрия баланс.
Заключение
Това ръководство ви преведе през актуализиране и модифициране на настройките за клъстер Elasticsearch, за да се даде възможност за автоматично балансиране на парчета. Статията обхваща и ръчно ребалансиране, ако имате нужда от него.