Как Namenode обрабатывает сбой Datanode в распределенной файловой системе Hadoop?

Опубликовано: 18 Февраля, 2022

Файловая система Hadoop - это файловая система главный / подчиненный, в которой Namenode работает как главный, а Datanode - как подчиненный. Namenode - очень важный термин для файловой системы Hadoop, потому что он действует как центральный компонент HDFS. Если Namenode выходит из строя, то весь кластер Hadoop становится недоступным и считается мертвым. Datanode хранит фактические данные и работает в соответствии с инструкциями Namenode. Файловая система Hadoop может иметь несколько узлов данных, но только один активный Namenode.

Основные операции Namenode:

  • Namenode обслуживает и управляет узлами данных и назначает им задачу.
  • Namenodde не содержит актуальных данных файлов.
  • Namenode хранит метаданные фактических данных, таких как имя файла, путь, количество блоков данных, идентификаторы блоков, местоположение блока, количество реплик и другую информацию, относящуюся к подчиненному устройству.
  • Namenode управляет всеми запросами (чтение, запись) клиента для фактического файла данных.
  • Namenode выполняет операции с пространством имен файловой системы, такие как открытие / закрытие файлов, переименование файлов и каталогов.

Основные операции Datanode:

  • Datanodes отвечает за хранение фактических данных.
  • По инструкции от Namenode он выполняет такие операции, как создание / репликация / удаление блоков данных.
  • Когда один из Datanode выходит из строя, он не оказывает никакого влияния на кластер Hadoop из-за репликации .
  • Все датаноды синхронизируются в кластере Hadoop таким образом, что они могут взаимодействовать друг с другом для различных операций.

Что произойдет, если один из Datanodes выйдет из строя в HDFS?

Namenode периодически получает контрольный сигнал и отчет о блоке от каждого Datanode в кластере. Каждый Datanode отправляет контрольное сообщение через каждые 3 секунды в Namenode. Отчет о работоспособности - это просто информация о конкретном Datanode, который работает должным образом или нет. Другими словами, мы можем сказать, что конкретный Datanode жив или нет.
Отчет о блоках конкретного Datanode содержит информацию обо всех блоках, которые находятся на соответствующем Datanode. Когда Namenode не получает никаких контрольных сообщений в течение 10 минут (по умолчанию) от определенного Datanode, тогда соответствующий Datanode считается мертвым или неисправным Namenode. Поскольку репликация блоков будет недостаточной, система запускает процесс репликации от одного датанода к другому, беря всю информацию о блоках из отчета о блоках соответствующего датанода. Данные для репликации передаются напрямую от одного Datanode к другому без передачи данных через Namenode.