Поделиться через


Архитектура Apache Hadoop в HDInsight

Apache Hadoop включает два основных компонента: распределенную файловую систему Apache Hadoop (HDFS), которая предоставляет хранилище и Apache Hadoop Еще один переговорщик ресурсов (YARN), который обеспечивает обработку. Благодаря возможностям хранения и обработки кластер может запускать программы MapReduce для выполнения требуемой обработки данных.

Примечание.

HDFS обычно не развертывается в кластере HDInsight для предоставления хранилища. Вместо этого уровень интерфейса, совместимый с HDFS, используется компонентами Hadoop. Фактические возможности хранения предоставляются службой хранилища Azure или Azure Data Lake Storage. Для Hadoop задания MapReduce, выполняемые в кластере HDInsight, выполняются так же, как если бы HDFS присутствовали и поэтому не требуют изменений для поддержки своих потребностей в хранилище. В Hadoop в HDInsight хранилище передается на аутсорсинг, но обработка YARN остается основным компонентом. Дополнительные сведения см. в статье "Общие сведения о Azure HDInsight".

В этой статье описывается YARN и как он координирует выполнение приложений в HDInsight.

Основы Apache Hadoop YARN

YARN управляет обработкой данных в Hadoop. YARN имеет две основные службы, которые выполняются в качестве процессов на узлах в кластере:

  • ResourceManager
  • NodeManager

ResourceManager предоставляет вычислительные ресурсы кластера приложениям, таким как задания MapReduce. ResourceManager предоставляет эти ресурсы в виде контейнеров, где каждый контейнер состоит из выделения ядер ЦП и памяти ОЗУ. Если вы объединили все ресурсы, доступные в кластере, а затем распределили ядра и память в блоках, каждый блок ресурсов является контейнером. Каждый узел в кластере имеет емкость для определенного количества контейнеров, поэтому кластер имеет фиксированное ограничение на количество доступных контейнеров. Выделение ресурсов в контейнере можно настроить.

Когда приложение MapReduce выполняется в кластере, ResourceManager предоставляет приложению контейнеры, в которых нужно выполнить. ResourceManager отслеживает состояние запущенных приложений, доступную емкость кластера и отслеживает приложения по мере их завершения и выпуска ресурсов.

ResourceManager также запускает процесс веб-сервера, предоставляющий веб-интерфейс для мониторинга состояния приложений.

Когда пользователь отправляет приложение MapReduce для запуска в кластере, приложение отправляется в ResourceManager. В свою очередь ResourceManager выделяет контейнер на доступных узлах NodeManager. Узлы NodeManager находятся в том месте, где приложение выполняется. Первый выделенный контейнер запускает специальное приложение с именем ApplicationMaster. Этот ApplicationMaster отвечает за получение ресурсов в виде последующих контейнеров, необходимых для запуска отправленного приложения. Контроллер приложений проверяет этапы выполнения, такие как этап сопоставления и этап свертки, с учетом объема данных, которые необходимо обработать. Затем ApplicationMaster запрашивает (согласовывает) ресурсы из ResourceManager от имени приложения. ResourceManager, в свою очередь, выделяет ресурсы от NodeManagers в кластере для ApplicationMaster, чтобы он мог использовать их при выполнении приложения.

NodeManagers выполняют задачи, составляющие приложение, а затем сообщают о ходе выполнения и состоянии обратно мастеру приложений. ApplicationMaster, в свою очередь, сообщает о состоянии приложения обратно в ResourceManager. ResourceManager возвращает все результаты клиенту.

YARN в HDInsight

Все типы кластеров HDInsight развертывают YARN. ResourceManager развертывается для обеспечения высокой доступности с основным и вторичным экземплярами, которые выполняются на первом и втором головных узлах в кластере соответственно. Одновременно активен только один экземпляр ResourceManager. Инстанции NodeManager запускаются на доступных рабочих узлах в кластере.

Apache YARN в Azure HDInsight.

Мягкое удаление

Чтобы отменить удаление файла из учетной записи хранения, см. статью:

Служба хранилища Azure

Хранилище Azure Data Lake поколения 1

Restore-AzDataLakeStoreDeletedItem (Восстановление удаленного элемента AzDataLakeStore)

Azure Data Lake Storage 2-го поколения

Известные проблемы с Azure Data Lake Storage 2-го поколения

Очистка мусора

Свойство fs.trash.intervalhdFS>Advanced core-site должно оставаться в значении 0 по умолчанию, так как не следует хранить данные в локальной файловой системе. Это значение не влияет на удаленные учетные записи хранения (WASB, ADLS 1-го поколения, ABFS)

Дальнейшие действия