Apache Hadoop 3.2.2 — свежий релиз 2021: краткий обзор главной технологии Big Data

курсы Hadoop, Apache Hadoop Обучение, бесплатный тест по большим даннымBig Data, Большие данные, обработка данных, архитектура, Spark, Kafka, Hive, HDFS, Hadoop

Месяц назад, в начале января 2021 года вышел новый релиз Apache Hadoop 3.2.2. Читайте далее, чего ждать от самой главной технологии Big Data, какие ошибки исправлены, зачем внесены изменения и кому они будут особенно полезны.

7 главных обновлений Apache Hadoop 3.2.2

Этот второй выпуск версии 3.2 содержит 516 исправлений ошибок, улучшений и улучшений по сравнению с предыдущим релизом. Он считается стабильным (stable), в отличие от первого релиза ветки 3.3.0, опубликованной в июле 2020 года.

Наиболее значимыми улучшениями в Hadoop 3.2.2 считаются следующие [1]:

  • исправление ошибки для поддержки индикации имени сервера (SNI, Server Name Indication) в ABFS — драйвере файловой системы больших двоичных объектов Azure (Azure Blob File System), который является одним из основных способов доступа к данным в хранилище Azure Data Lake Storage 2-го поколения. ABFS позволяет получить доступ к данным в хранилище BLOB-объектов Azure2 без кода, явно ссылающегося на Data Lake Storage 2-го поколения [2]. До этого сокеты безопасности wildfly-openssl, от которых зависит ABFS, не поддерживали указание имени сервера (SNI), из-за чего невозможно было установить соединение в кластере с включенным брандмауэром [3].
  • Исправлен запуск журнала главного узла кластера (NameNode) в Windows, что позволяет установить права доступа к каталогу имен в файловых системах, несовместимых с POSIX.
  • Поддержка кэша чтения постоянной памяти HDFS – теперь, чтобы включить кэш SCM без механизма вытеснения, нужно просто настроить том SCM для свойства «dfs.datanode.cache.pmem.dirs» в файле hdfs-site.xml. При этом все директивы кэширования HDFS остаются неизменными. Если настроено несколько томов SCM, то выбор доступного тома для кэширования блока производится на основе циклического перебора. Когда узел данных (DataNode) получает запрос на чтение данных от клиента, если соответствующий блок кэшируется в SCM, DataNode создает экземпляр InputStream с путем расположения блока в SCM или адресом кэша в SCM, а затем отправляет кэшированные данные клиенту.
  • Последовательное чтение из резервного узла. Теперь в кластере Hadoop есть новый тип узла имен, наблюдатель (Observer), в дополнение к активным и резервным узлам в настройках высокой доступности. Observer поддерживает реплику пространства имен так же, как резервный узел (Standby Node), чтобы дополнительно выполнять запросы чтения клиентов. Для обеспечения согласованности чтения после записи в пределах одного клиента в RPC-заголовки вводится идентификатор состояния. Observer отвечает на запрос клиента только после того, как его собственное состояние совпадет с идентификатором состояния клиента, который он ранее получил от Active NameNode. Благодаря этому возможен явный вызов клиентского протокола msync() клиентом, с гарантией согласованности последующих чтений этим клиентом из Observer. Также представлен новый клиентский ObserverReadProxyProvider, обеспечивающий автоматическое переключение между Active и Observer NameNodes для отправки запросов на запись и чтение соответственно.
  • ZKFC (ZKFailoverController, клиент ZooKeeper, который отслеживает и управляет состоянием NameNode) игнорирует dfs.namenode.rpc-bind-host и использует dfs.namenode.rpc-address для привязки к адресу хоста. ZKFC связывает адрес хоста с dfs.namenode.servicerpc-bind-hos», если он настроен, иначе – привязывается к «dfs.namenode.rpc-bind-host». Если ни один из указанных параметров не настроен, ZKFC привязывается к адресу сервера RPC NameNode, т.е. «dfs.namenode.rpc-address». Каждая из машин, на которых работает NameNode, запускает ZKFC для мониторинга работоспособности, управления сеансом ZooKeeper и управления блокировками [4].
  • Команда ListStatus в корневом каталоге («/») для отображения статусов файлов и каталогов по заданному пути теперь учитывает листинг из fallbackLink, если он доступен. Если одно и то же имя каталога присутствует в настроенном пути монтирования, а также в резервной ссылке, то в возвращаемом результате будет указан только настроенный путь монтирования.
  • Узлы имен теперь указывают состояние своей работоспособности при регистрации в Resource Manager.

Большинство из главных обновлений Apache Hadoop 3.2.2 относятся к HDFS и YARN, а потому они особенно важны для администраторов кластеров и разработчиков распределенных Big Data приложений. Многие из этих улучшений также отражены в другом релизе, 3.3.0. В частности, улучшение ABFS, кэширование SCM, каталог приложений YARN, поддержка безопасности HDFS Router. Из наиболее значимого с технической точки зрения, стоит отметить что Apache Hadoop 3.3.0 стал первым релизом с поддержкой ARM-архитектуры процессоров, которая отличается низким энергопотреблением, и потому активно используется во встраиваемых системах и мобильных устройствах [5].

Разобраться с основами Apache Hadoop, научиться администрировать кластера и разрабатывать распределенные системы аналитики больших данных с компонентами этого фреймворка вы сможете на специализированных курсах в нашем лицензированном учебном центре обучения и повышения квалификации для разработчиков, менеджеров, архитекторов, инженеров, администраторов, Data Scientist’ов и аналитиков Big Data в Москве:

 

 

Источники

  1. https://hadoop.apache.org/docs/r3.2.2/index.html
  2. https://docs.microsoft.com/ru-ru/azure/storage/blobs/data-lake-storage-abfs-driver
  3. https://issues.apache.org/jira/browse/HADOOP-16460
  4. https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/HDFSHighAvailabilityWithNFS.html
  5. https://hadoop.apache.org/docs/r3.3.0/index.html