Смягчающие ахиллово сухожилия Hadoop
Я только что дал этому учебнику Hadoop прочесть, в каком состоянии у Hadoop есть ахиллово сухожилие (единая точка отказа) в JobTracker
:
JobTracker является единственной точкой отказа для службы Hadoop MapReduce, которая означает, что если JobTracker выходит из строя, все выполняющиеся задания останавливаются.
А также эта статья, в которой говорится, что NameNode
является SPOF:
Единственная точка отказа в кластере Hadoop - это NameNode.
Отдельные точки отказа плохи, ладно? Какие стратегии / методы / инструменты / и т. Д. Можно ли обойти эти SPOF и сделать Hadoop избыточным, отказоустойчивым и отказоустойчивым?
2 ответа
HDFS и Mapreduce являются основными компонентами Hadoop. В более ранних выпусках Apache Hadoop Namenode и Jobtracker были SPOF (можно настроить только один экземпляр). Эта проблема исправлена в Hadoop 2.X.
Jobtracker HA.
Jobtracker HA может быть достигнуто путем настройки 2 Jobtracker(JT)
экземпляр в Active - Standby
режим на двух узлах. Если один JT выходит из строя, второй Jobtracker будет доступен для обслуживания запроса. Только один сервисный трекер (активный) будет доступен для обслуживания запроса одновременно, второй JT(резервный) будет работать в режиме только для чтения. Для Jobtracker HA требуется экземпляр zookeeper. Отказ (переключение) можно настроить как Manaul или Automcatic. Для автоматического восстановления после сбоя требуется другой процесс Failover Controller (FC)
, В текущем выпуске, если активный JT дает сбой, все выполняющиеся задания будут остановлены, однако новое задание будет автоматически отправлено новому JT. Эта функция недоступна в текущей версии.
MR2
второе поколение mapreduce, которое использует YARN, Resource Manager(RM)
является основным сервисом в YARN, RM также может быть настроен в режиме активного ожидания. Сбой RM не повлияет на работу Jobs/Application.
Наменоде ХА
Наменоде ХА это нечто важное. Namenode HA также можно настроить в режиме активного ожидания (максимум 2 экземпляра namenode). Quorum based Journaling
Широко принятый метод, который внутренне использует zookeeper. Только один наменоде будет активен одновременно.
Secondary Namenode(SNN)
это не Standby Namenode(SN)
и наоборот, SNN имеет другую функциональность в конфигурации Non HA, настройка Namenode HA не требует SNN, поскольку SN namenode выполняет контрольную установку (Функциональность SNN)
Processes Namenode HA
- Активный наменоде
- Резервный наменоде
- Отказоустойчивый контроллер: для ограждения, чтобы избежать раскола мозга сценарий.
- Jounalnodes (требуется минимум 3 экземпляра): Модификация пространства имен будет регистрироваться на узлах журнала, и резервный namenode считывает оттуда. Только один наменоде будет разрешено писать за один раз, чтобы избежать проблемы разделения мозга.
Есть High availability
механизмы, встроенные в Hadoop на некоторое время. "Secondary NameNode", "Backup JobTracker" будет служить в качестве горячей резервной копии их соответствующих аналогов.
Большая часть прошлого SPOF была устранена в последних выпусках hadoop.
Это объясняется в следующих документах подробно.
Надеюсь, поможет.