Примеры настройки YARN HA

Параметры настройки

Отказоустойчивость настраивают с помощью различных параметров конфигурации, необходимые и наиболее важные из которых приведены в следующей таблице.

Файл yarn-default.xml содержит полный список параметров, включая значения по умолчанию. Инструкции по настройке хранилища состояний (state-store) приведены в документе ResourceManager Restart.

Параметр настройки Описание

hadoop.zk.address

Адреса серверов ZooKeeper в виде списка пар хост:порт. Используется как хранилищем состояний (state store) HDFS, так и встроенным в ZooKeeper инструментом выбора лидера

yarn.resourcemanager.ha.enabled

Включение автоматической отказоустойчивости RM HA

yarn.resourcemanager.ha.rm-ids

Список логических идентификаторов ResourceManagers (RM), например rm1,rm2

yarn.resourcemanager.hostname.rm-id

Для каждого rm-id указывают hostname узла, на котором установлен RM. В качестве альтернативы можно задавать IP-адреса этих узлов

yarn.resourcemanager.address.rm-id

Для каждого rm-id указывают host:port для отправки задач клиентами. Если параметр задан, то значение hostname, указанное в yarn.resourcemanager.hostname.rm-id, игнорируется для указанной цели

yarn.resourcemanager.scheduler.address.rm-id

Для каждого rm-id указывают хост:порт планировщика для получения ресурсов ApplicationMaster. Если параметр задан, то значение hostname, указанное в yarn.resourcemanager.hostname.rm-id, игнорируется для указанной цели

yarn.resourcemanager.resource-tracker.address.rm-id

Для каждого rm-id указывают host:port для подключения NodeManagers. Если параметр задан, то значение hostname, указанное в yarn.resourcemanager.hostname.rm-id, игнорируется для указанной цели

yarn.resourcemanager.admin.address.rm-id

Для каждого rm-id указывают host:port для административных команд. Если параметр задан, то значение hostname, указанное в yarn.resourcemanager.hostname.rm-id, игнорируется для указанной цели

yarn.resourcemanager.webapp.address.rm-id

Для каждого rm-id указывают host:port web-приложения RM. Это не нужно, если параметр yarn.http.policy имеет значение HTTPS_ONLY. Если параметр задан, то значение hostname, указанное в yarn.resourcemanager.hostname.rm-id, игнорируется для указанной цели

yarn.resourcemanager.webapp.https.address.rm-id

Для каждого rm-id указывают host:port web-приложения RM для доступа по HTTPS. Это не нужно, если параметр yarn.http.policy имеет значение HTTP_ONLY. Если параметр задан, то значение hostname, указанное в yarn.resourcemanager.hostname.rm-id, игнорируется для указанной цели

yarn.resourcemanager.ha.id

Идентифицирует данный RM среди других RM, входящих в "ансамбль". Параметр опционален, однако, если его значение задано, то администратор должен убедиться, что собственный идентификатор указан в настройках каждого RM

yarn.resourcemanager.ha.automatic-failover.enabled

Включение автоматической отказоустойчивости; по умолчанию включено, но сервис действует только при включенном HA

yarn.resourcemanager.ha.automatic-failover.embedded

Использование встроенного метода выборов лидера для назначения активного RM. По умолчанию параметр включен, но метод действует только тогда, когда включены одновременно HA и automatic-failover

yarn.resourcemanager.cluster-id

Идентификатор кластера. Используется при выборе лидера для того, чтобы RM не получил активную роль в другом кластере

yarn.client.failover-proxy-provider

Класс, который будет использован клиентами, Application Masters (AM) и NodeManagers (NM) для аварийного переключения на активный RM

yarn.client.failover-no-ha-proxy-provider

Класс, который будет использован клиентами, AM и NM для аварийного переключения на активный RM, когда кластер не работает в режиме HA

yarn.client.failover-max-attempts

Максимально допустимое количество попыток сервиса FailoverProxyProvider восстановить работоспособность кластера

yarn.client.failover-sleep-base-ms

База для вычисления задержки (в миллисекундах), используемая для расчета экспоненциальной задержки между выборами активного RM при обеспечении отказоустойчивости

yarn.client.failover-sleep-max-ms

Максимально допустимое время задержки (в миллисекундах) между выборами активного RM при обеспечении отказоустойчивости

yarn.client.failover-retries

Максимально допустимое количество повторных попыток подключения к RM при каждой попытке восстановления работоспособности кластера

yarn.client.failover-retries-on-socket-timeouts

Максимально допустимое количество повторных попыток подключения к активному RM при тайм-ауте сокета

Пример конфигурации

Пример минимальной настройки для отказоустойчивости RM.

<property>
  <name>yarn.resourcemanager.ha.enabled</name>
  <value>true</value>
</property>
<property>
  <name>yarn.resourcemanager.cluster-id</name>
  <value>cluster1</value>
</property>
<property>
  <name>yarn.resourcemanager.ha.rm-ids</name>
  <value>rm1,rm2</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm1</name>
  <value>master1</value>
</property>
<property>
  <name>yarn.resourcemanager.hostname.rm2</name>
  <value>master2</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm1</name>
  <value>master1:8088</value>
</property>
<property>
  <name>yarn.resourcemanager.webapp.address.rm2</name>
  <value>master2:8088</value>
</property>
<property>
  <name>hadoop.zk.address</name>
  <value>zk1:2181,zk2:2181,zk3:2181</value>
</property>

Команды администратора

Команда yarn rmadmin имеет несколько специфических параметров для проверки состояния RM и перехода в состояние active или standby. Она принимают в качестве аргумента идентификатор RM, заданный параметром yarn.resourcemanager.ha.rm-ids в настройках YARN.

Запрос состояния RM1:

$ yarn rmadmin -getServiceState rm1

Вывод на экран:

active

Аналогично запрос состояния RM2:

$ yarn rmadmin -getServiceState rm2
standby

Если включена автоматическая отказоустойчивость, переход в состояние active или standby в ручном режиме будет недоступен.

ВНИМАНИЕ
Данное ограничение можно обойти с помощью флага -forcemanual.

Пример запроса на переключение:

$ yarn rmadmin -transitionToStandby rm1

Пример отказа:

Automatic failover is enabled for org.apache.hadoop.yarn.client.RMHAServiceTarget@1d8299fd
Refusing to manually manage HA state, since it may cause
a split-brain scenario or other incorrect state.
If you are very sure you know what you are doing, please
specify the forcemanual flag.

Смотрите также справочное руководство YARN CLI для часто используемых команд YARN.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней