Разрешить Elasticsearch распределять данные в системе
Распределение данных в развертывании Elasticsearch можно контролировать с помощью настроек распределения кластера. В некоторых ситуациях пользователи могут временно отключить или ограничить распределение данных в системе.
Если забыть повторно разрешить все распределения данных, могут возникнуть неназначенные фрагменты.
Чтобы (снова) разрешить распределение всех данных, выполните следующие действия:
Для назначения фрагментов нам нужно изменить значение настройки, ограничивающей назначение фрагментов, чтобы разрешить назначение всех фрагментов.
Для этого проинспектируем системную cluster.routing.allocation.enable настройку кластера и изменим заданное значение на all.
Используйте Kibana
- Войдите в консоль Elastic Cloud.
-
На панели Сервис Elasticsearch щелкните имя своего развертывания.
Если имя вашего развертывания отключено, ваши экземпляры Kibana могут быть неисправны, в этом случае обратитесь в поддержку Elastic. Если ваше развертывание не включает Kibana, вам нужно сначала включить его.
-
Откройте меню навигации развертывания (расположено под логотипом Elastic в верхнем левом углу) и перейдите к Инструменты разработчика > Консоль.
-
Просмотрите
cluster.routing.allocation.enableнастройку кластера:resp = client.cluster.get_settings( flat_settings=True, ) print(resp)response = client.cluster.get_settings( flat_settings: true ) puts response
const response = await client.cluster.getSettings({ flat_settings: "true", }); console.log(response);GET /_cluster/settings?flat_settings
Ответ будет похож на этот:
{ "persistent": { "cluster.routing.allocation.enable": "none" }, "transient": {} }Представляет текущее значение настройки, контролирующей, разрешено ли частично или полностью распределять данные в системе.
-
Изменить значение настройки, чтобы разрешить полное распределение всех данных в системе:
resp = client.cluster.put_settings( persistent={ "cluster.routing.allocation.enable": "all" }, ) print(resp)response = client.cluster.put_settings( body: { persistent: { 'cluster.routing.allocation.enable' => 'all' } } ) puts responseconst response = await client.cluster.putSettings({ persistent: { "cluster.routing.allocation.enable": "all", }, }); console.log(response);PUT _cluster/settings { "persistent" : { "cluster.routing.allocation.enable" : "all" } }Новое значение для системной настройки
allocation.enableизменено, чтобы разрешить распределение всех фрагментов.
Для назначения фрагментов нам нужно изменить значение настройки, ограничивающей назначение фрагментов, чтобы разрешить назначение всех фрагментов.
Для этого проинспектируем системную cluster.routing.allocation.enable настройку кластера и изменим заданное значение на all.
-
Просмотрите
cluster.routing.allocation.enableнастройку кластера:resp = client.cluster.get_settings( flat_settings=True, ) print(resp)response = client.cluster.get_settings( flat_settings: true ) puts response
const response = await client.cluster.getSettings({ flat_settings: "true", }); console.log(response);GET /_cluster/settings?flat_settings
Ответ будет похож на этот:
{ "persistent": { "cluster.routing.allocation.enable": "none" }, "transient": {} }Представляет текущее значение настройки, контролирующей, разрешено ли частично или полностью распределять данные в системе.
-
Изменить значение настройки, чтобы разрешить полное распределение всех данных в системе:
resp = client.cluster.put_settings( persistent={ "cluster.routing.allocation.enable": "all" }, ) print(resp)response = client.cluster.put_settings( body: { persistent: { 'cluster.routing.allocation.enable' => 'all' } } ) puts responseconst response = await client.cluster.putSettings({ persistent: { "cluster.routing.allocation.enable": "all", }, }); console.log(response);PUT _cluster/settings { "persistent" : { "cluster.routing.allocation.enable" : "all" } }Новое значение для системной настройки
allocation.enableизменено, чтобы разрешить распределение всех фрагментов.
© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/allow-all-cluster-allocation.html