Я хотел понять, как улей знает, какой из Hadoop NameNode находится в активном состоянии, и что происходит, когда активный NameNode терпит неудачуулей с Hadoop высокой доступности
ответ
Hive конфигурируется с помощью metatool
, чтобы указать на сконфигурированной dfs.nameservices
для HA HDFS , См. https://cwiki.apache.org/confluence/display/Hive/Hive+MetaTool. dfs.nameservices
- это логический адрес, в то время как фактические наменоводы настроены с dfs.ha.namenodes.[id]
.
Что касается режима Namenode, состояние сохраняется в Zookeeper. Когда активный namenode выходит из строя, восстановление после сбоя запускается после настроенного времени (по умолчанию 5 секунд, ha.zookeeper.session-timeout.ms
). Требуется сценарий фехтования и активирует режим ожидания в режиме ожидания.
В hdfs URL-адрес имени узла HA должен быть логическим именем (например, hdfs: // logicalnamenode). Нам нужно настроить улей для работы с HA. Для этого вам нужно изменить конфигурацию узла имени улья с помощью команды metatool.
- Список текущей конфигурации NN
~ # metatool -listFSRoot
HDFS: // NameNode: 8020/пользователь/улей/склад - Следующая команда обновит старую конфигурацию NN с логическим именем
metatool -updateLocation HDFS: // logicalnamenode HDFS: // NameNode: 8020 -tablePropKey avro.schema.url