Как Namenode обрабатывает сбой Datanode в распределенной файловой системе Hadoop?
Файловая система 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.