Примеры настройки 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), например |
yarn.resourcemanager.hostname.rm-id |
Для каждого |
yarn.resourcemanager.address.rm-id |
Для каждого |
yarn.resourcemanager.scheduler.address.rm-id |
Для каждого |
yarn.resourcemanager.resource-tracker.address.rm-id |
Для каждого |
yarn.resourcemanager.admin.address.rm-id |
Для каждого |
yarn.resourcemanager.webapp.address.rm-id |
Для каждого |
yarn.resourcemanager.webapp.https.address.rm-id |
Для каждого |
yarn.resourcemanager.ha.id |
Идентифицирует данный RM среди других RM, входящих в "ансамбль". Параметр опционален, однако, если его значение задано, то администратор должен убедиться, что собственный идентификатор указан в настройках каждого RM |
yarn.resourcemanager.ha.automatic-failover.enabled |
Включение автоматической отказоустойчивости; по умолчанию включено, но сервис действует только при включенном HA |
yarn.resourcemanager.ha.automatic-failover.embedded |
Использование встроенного метода выборов лидера для назначения активного RM. По умолчанию параметр включен, но метод действует только тогда, когда включены одновременно HA и |
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.