менеджер ресурсов (RM) высокая доступность объясняется в Apache связи следующим образом.
ResourceManager HA реализуется через активный/архитектуры ожидания.
В любой момент времени один из RM является активным, а другой резервный узел ждет, чтобы взять верх, если Active RM выходит из строя.
RM, переведенный в активное состояние, загружает внутреннее состояние RM от State-store и продолжает работать с того места, где предыдущий активный выключался.
Новая попытка создается для каждого управляемого приложения, ранее отправленного в RM. Периодически приложения могут выполнять контрольно-пропускной пункт, чтобы не потерять работу.
Государственный магазин должен быть виден как из активных, так и для резервных RM. В настоящее время существует две реализации RMStateStore для сохранения - FileSystemRMStateStore и ZKRMStateStore.
ZKRMStateStore (ZooKeeper) неявно разрешает доступ на запись к одному RM в любой момент времени и, следовательно, является рекомендуемым хранилищем для использования в кластере HA.
Использование ZKRMStateStore, нет необходимости в отдельный механизм ограждения для решения потенциальной ситуации разделенного мозга, где несколько RMs потенциально могут предположить ситуация Активных role.This обрабатываются с Zookeeper очень хорошо.
ZooKeeper не только используется для отказа диспетчера ресурсов. Многие приложения теперь используют дни ZooKeeper. Пример других сбоев при использовании в Hadoop - Ошибка имени Node также происходит через ZooKeeper. Посмотрите также на Name node fail over process.
После Hadoop 2.x и Before Hadoop 2.6.х:
Когда ResourceManager умирает и перезагрузки или при сбое на другой ResourceManager в случае кластера HA, вновь активным ResourceManager инструктирует работает ApplicationMasters для отмены. Это использует попытку приложения.
Кроме того, если ResourceManager не работает некоторое время, и ApplicationMaster не может подключиться, он будет отключен и отменен. Это также использует попытку приложения.
Когда новый ResourceManager становится активным, он может восстанавливать приложения с неудачными попытками, которые не превышают своих максимальных попыток.
Посмотрите на эту article для получения более подробной информации
От Hadoop 2.6.0:
Resource Manager восстанавливает свое состояние движения, воспользовавшись контейнера статусов отправленных из всех менеджеров узлов. Node Manager не будет убивать контейнеры, когда он повторно синхронизируется с перезапущенным диспетчером ресурсов.
Он продолжает управлять контейнерами и отправлять статусы контейнера в диспетчер ресурсов при повторной регистрации.
Менеджер ресурсов восстанавливает экземпляры контейнера и состояние планирования соответствующих приложений, впитывая данные этих контейнеров