get Oracle SmartView plugin

Apache Hadoop схема компонент

Фреймворк Apache Hadoop работает с кластером узлов. Эти узлы могут быть виртуальными машинами или физическими серверами. Платформа Hadoop разработана для бесперебойной работы со всеми типами этих систем. Ядро Apache Hadoop основано на Java. Каждый из компонентов инфраструктуры Apache Hadoop выполняет разные операции. Apache Hadoop состоит из следующих ключевых модулей, которые работают с HDFS, MapReduce и YARN, чтобы обеспечить действительно распределенное взаимодействие с приложениями. На следующей диаграмме показана общая картина кластера Apache Hadoop с ключевыми компонентами:

Apache Hadoop – Resource Manager

Менеджер ресурсов YARN обрабатывает все запросы RPC , которые позволяют клиентам отправлять свои задания на выполнение и получать информацию о кластерах и очередях, и о завершении заданий. Помимо обычных клиентских запросов, он предоставляет отдельные административные задачи, которые имеют более высокий приоритет. Также он отслеживает доступные ресурсы и сервисные запросы от узлов Hadoop. Resource Manager синхронизирован с Application Masters для управления регистрацией / завершением его работы , а также для проверки работоспособности. Resource Manager может принимать сообщения через следующие механизмы:

  • RESTful APIs
  • User interface (New Web UI)
  • Command-line interface (CLI)

Эти API предоставляют такую информацию, как состояние кластера, индекс производительности кластера и информацию о приложении. Диспетчер приложений – это основная точка взаимодействия для управления всеми отправленными приложениями. YARN Schedule в основном используется для планирования заданий с различными стратегиями. (планирование емкости , справедливое планирование ) Еще одна новая функция диспетчера ресурсов – обеспечение аварийного переключения с почти нулевым временем простоя для всех пользователей.

Apache Hadoop – Node Manager

Как следует из названия, Node Manager работает на каждом из подчиненных узлов Hadoop, участвующих в кластере. Это означает, что в кластере может присутствовать множество менеджеров узлов, когда этот кластер работает с несколькими узлами. На следующей диаграмме показаны ключевые функции, выполняемые Node Manager:

Node Manager запускает различные службы, чтобы определять и сообщать о работоспособности узла. Если какие-либо службы не запускаются на узле, Node Manager помечает его как неисправный и сообщает об этом Resource Manager. Помимо управления жизненным циклом узлов, он также проверяет доступные ресурсы, включая память и ЦП. При запуске Node Manager регистрируется в диспетчере ресурсов и отправляет информацию о доступности ресурсов. Одна из ключевых обязанностей Node Manager – управлять контейнерами, запущенными на узле, через его Container Manager. Эти действия включают запуск нового контейнера при получении запроса от Application Master и протоколирование операций, выполняемых с контейнером. Он также следит за состоянием узла.

Application Master отвечает за запуск одного приложения. Он инициируется на основе нового приложения, отправленного в кластер Hadoop. Когда получен запрос на выполнение приложения, он требует наличия контейнера от Resource Manager для выполнения задания. Application Master знает о логике выполнения и обычно специфичен для фреймворков. Например, Apache Hadoop MapReduce имеет собственную реализацию Application Master.

Apache Hadoop NameNode

NameNode – это привратник для всех запросов, связанных с HDFS. Он служит единой точкой для всех типов координации данных HDFS, которые распределяются между несколькими узлами. NameNode работает как реестр для поддержки блоков данных, которые распределены по Data Nodes в кластере. Точно так же вторичные NameNodes хранят резервную копию данных активного Name Node периодически (обычно каждые четыре часа). Помимо поддержки блоков данных, NameNode также поддерживает работоспособность каждого DataNode с помощью механизма контрольных сигналов. В любом кластере Hadoop одновременно может быть только один активный NameNode.

Apache Hadoop DataNode

DataNode в экосистеме Hadoop в первую очередь отвечает за хранение данных приложения в распределенной и реплицированной форме. Он действует как подчиненный в системе и управляется NameNode. Каждый диск в системе Hadoop разделен на несколько блоков, как и традиционное запоминающее устройство компьютера. Блок – это минимальная единица, в которой данные могут быть прочитаны или записаны файловой системой Hadoop. Эта экосистема дает естественное преимущество в разделении больших файлов на эти блоки и хранении их на нескольких узлах. Размер блока узла данных по умолчанию варьируется от 64 МБ до 128 МБ, в зависимости от реализации Hadoop. Это можно изменить через конфигурацию узла данных. HDFS разработана для поддержки очень больших размеров файлов и для семантики на основе однократной записи-чтения-многих.

DataNodes в первую очередь отвечают за хранение и извлечение этих блоков, когда они запрашиваются потребителями через Name Node. В Hadoop версии 3.X DataNode не только хранит данные в блоках, но также распределенным образом контрольную сумму или четность исходных блоков. Узлы данных следуют механизму конвейера репликации для хранения данных в блоках, распространяющих части на другие Data Nodes.

Когда кластер запускается, NameNode запускается в безопасном режиме, пока узлы данных не зарегистрируют информацию блока данных с NameNode. Как только это подтверждено, он начинает взаимодействовать с клиентами для обслуживания запросов. Когда Data node запускается, он сначала соединяется с NameNode, сообщая всю информацию о доступности своих блоков данных. Эта информация регистрируется в NameNode, и когда клиент запрашивает информацию об определенном блоке, NameNode указывает на соответствующие данные не из своего реестра. Затем клиент напрямую взаимодействует с DataNode для чтения / записи блока данных. Во время обработки кластера узел данных периодически связывается с Name Node, отправляя контрольный сигнал.