Релиз платформы для распределенной обработки данных Apache Hadoop 3.2
Организация Apache Software Foundation опубликовала релиз Apache Hadoop 3.2, свободной платформы для организации распределенной обработки больших объемов данных с использованием парадигмы map/reduce, при которой задача делится на множество более мелких обособленных фрагментов, каждый из которых может быть запущен на отдельном узле кластера. Хранилище на базе Hadoop может охватывать тысячи узлов и содержать эксабайты данных.
В состав Hadoop входит реализация распределенной файловой системы Hadoop Distributed Filesystem (HDFS), автоматически обеспечивающей резервирование данных и оптимизированной для работы MapReduce-приложений. Для упрощения доступа к данным в Hadoop хранилище разработана БД HBase и SQL-подобный язык Pig, который является своего рода SQL для MapReduce, запросы которого могут быть распараллелены и обработаны несколькими Hadoop-платформами. Проект оценивается как полностью стабильный и готовый для промышленной эксплуатции. Hadoop активно используется в крупных промышленных проектах, предоставляя возможности, аналогичные платформе Google Bigtable/GFS/MapReduce, при этом компания Google официально делегировала Hadoop и другим проектам Apache право использования технологий, на которые распространяются патенты, связанные с методом MapReduce.
Hadoop занимает первое место среди репозиториев Apache по числу вносимых изменений и пятое место по размеру кодовой базы (около 4 млн строк кода). Из крупных внедрений Hadoop отмечаются хранилища Netflix (сохраняется более 500 миллиардов событий в день), Twitter (кластер из 10 тысяч узлов в режиме реального времени хранит более зетабайта данных и обрабатывает более 5 миллиардов сеансов в день), Facebook (кластер из 4 тысяч узлов хранит более 300 петабайт и ежедневно увеличивается на 4 Пб в день).
Основные изменения в Apache Hadoop 3.2:
- Добавлен коннектор для файловой системы ABFS, поддерживающий хранилища Azure Datalake Gen2;
- Расширены возможности коннектора S3A, в котором обеспечена корректная обработка урезанных конфигураций AWS S3 и DynamoDB IO;
- В YARN (Yet Another Resource Negotiator) добавлена поддержка атрибутов узлов, позволяющая прикреплять разные метки к узлам на основе свойств этих узлов и размещать контейнеры с учетом данных меток;
- Реализован SPS (Storage Policy Satisfier), позволяющий создавать расширения для HDFS (Hadoop Distributed File System), перемещающие блоки между различными типами хранилищ на основе политик хранения, заданных для файлов и каталогов;
- Представлен инструмент Hadoop Submarine для упрощения разработки, тренировки и развертывания моделей глубинного машинного обучения на базе фреймворка TensorFlow в одном кластере Hadoop YARN;
- Добавлен HDFS-клиент на C++ с поддержкой асинхронного ввода/вывода для HDFS;
- Поддержка обновления начинки контейнеров через CLI-интерфейс или API YARN Native Service без остановки работы связанных с ними длительно работающих сервисов.
Дополнительно можно отметить выявление уязвимости в коде авторизации HDFS, позволяющей узнать значения расширенных атрибутов через выполнение операции listXAttrs. Проблема вызвана тем, что при проверке полномочий учитывался только доступ к операциям просмотра каталогов на уровне файловых путей, но не выполнялась проверка прав на чтение содержимого.
Кроме того, приводятся сведения об обнаружении вредоносного ПО, поражающего незащищенные хранилища на базе Hadoop. Для внедрения вредоносного ПО в сети отыскиваются необновленные серверы, содержащие неисправленные известные уязвимости в Hadoop YARN, а также в Redis и ActiveMQ, позволяющие выполнить код в системе. В случае успешной эксплуатации уязвимостей на сервере в большинстве случаев запускается код для майнинга криптовалют, организации слежки в локальной сети или кражи корпоративных закрытых данных. В отдельных случаях зафикировано применение вредоносного ПО Xbash, которое поддерживает сканирование сети для выявления новых уязвимых жертв и выполняет чистку содержимого БД и требует выкуп за восстановление данных (указывается, что данные зашифрованы, но на деле они просто удаляются).