Архитектура Apache Hadoop в HDInsight
Apache Hadoop состоит из двух основных компонентов — распределенной файловой системы (HDFS) Apache Hadoop, обеспечивающей хранение, и модуля управления ресурсами Apache Hadoop YARN, обеспечивающего обработку. Благодаря возможностям хранения и обработки на кластере можно запускать программы MapReduce, чтобы выполнять требуемую обработку данных.
Примечание.
Обычно HDFS не развернута в кластере HDInsight для предоставления хранилища. Вместо этого компоненты Hadoop используют HDFS-совместимый слой интерфейса. Фактическая емкость хранилища предоставляется службой хранилища Azure или Azure Data Lake Storage. Для Hadoop задания MapReduce выполняются в кластере HDInsight как будто HDFS присутствует и поэтому не требуют изменений для удовлетворения потребностей в хранении. В Hadoop в HDInsight хранилище является внешним, но обработка YARN остается внутренним компонентом. Дополнительную информацию см. во введении в Azure HDInsight.
В этой статье описан модуль YARN и как он координирует выполнение приложений в HDInsight.
Основные сведения об Apache Hadoop YARN
Платформа YARN управляет обработкой данных в Hadoop. Она состоит из двух основных служб, выполняющихся в качестве процессов на узлах кластера:
- ResourceManager
- Диспетчер узлов
ResourceManager (диспетчер ресурсов) предоставляет вычислительные ресурсы кластера приложениям (например, заданиям MapReduce). Эти ресурсы предоставляются в качестве контейнеров, каждый из которых состоит из выделенных ядер ЦП и объема оперативной памяти. Если вы объединили все ресурсы, доступные в кластере, а затем распределили ядра и объем памяти в блоки, то каждый блок ресурсов — это контейнер. Каждый узел в кластере может содержать определенное число контейнеров. Таким образом, кластер имеет фиксированное ограничение на количество доступных контейнеров. Распределение ресурсов в контейнере можно настроить.
При запуске приложения MapReduce в кластере диспетчер ресурсов предоставляет приложению контейнеры для выполнения. ResourceManager отслеживает состояние выполняемых приложений, доступную емкость кластера и наблюдает за приложениями, пока они не завершат работу и не освободят ресурсы.
Он также запускает процесс веб-сервера, предоставляющий пользовательский веб-интерфейс для мониторинга состояния приложения.
Когда пользователь отправляет приложение MapReduce на выполнение в кластере, оно попадает в ResourceManager, который, в свою очередь, выделяет контейнер на доступных узлах NodeManager (диспетчер узлов). Именно на них и выполняется приложение. В первом выделенном контейнере выполняется специальное приложение ApplicationMaster. Оно отвечает за получение ресурсов в виде последующих контейнеров, необходимых для выполнения отправленного приложения. ApplicationMaster проверяет этапы приложения (например, этап сопоставления и снижения нагрузки) и факторы, определяемые количеством данных для обработки. Затем ApplicationMaster запрашивает (согласовывает) ресурсы у ResourceManager от имени приложения. ResourceManager, в свою очередь, предоставляет ресурсы, необходимые для выполнения приложения, из NodeManager в кластер для ApplicationMaster.
NodeManager запускает задачи, составляющие приложение, а затем сообщает о ходе выполнения и состоянии приложению ApplicationMaster. Оно, в свою очередь, отправляет отчет о состоянии приложения в ResourceManager, который возвращает результаты клиенту.
YARN в HDInsight
YARN развертывается во всех типах кластера HDInsight. Для обеспечения высокого уровня доступности ResourceManager развертывается в двух экземплярах (первичный и вторичный), выполняющимися на первом и втором головных узлах в кластере соответственно. Одновременно может быть активным только один экземпляр ResourceManager. Экземпляры NodeManager выполняются на рабочих узлах, доступных в кластере.
Обратимое удаление
Чтобы отменить удаление файла из учетной записи хранения, см.:
Хранилище Azure
- Soft delete for Azure Storage blobs (Обратимое удаление больших двоичных объектов службы хранилища Azure)
- Отмена удаления большого двоичного объекта
Хранилище Azure Data Lake поколения 1
Restore-AzDataLakeStoreDeletedItem
Azure Data Lake Storage 2-го поколения
Известные проблемы с Azure Data Lake Storage 2-го поколения
Очистка корзины
Для свойства fs.trash.interval
из раздела HDFS > Advanced core-site необходимо оставить значение по умолчанию 0
, поскольку хранить данные в локальной файловой системе не следует. Это значение не влияет на удаленные учетные записи хранения (WASB, ADLS GEN1, ABFS).