Открыть сервисСервис

Apache Hadoop — фреймворк распределённой обработки данных

Apache Hadoop — открытый программный фреймворк для распределённого хранения и обработки больших объёмов данных на кластерах из обычного аппаратного обеспечения. Основан на модели MapReduce, разработанной в Google, и обеспечивает отказоустойчивое хранение файлов и параллельное выполнение вычислений над ними.

История

Разработка Hadoop началась в 2003–2004 годах в компании Yahoo! на основе идей, описанных в публикациях Google о файловой системе Google File System (GFS) и модели вычислений MapReduce. Первые версии использовались Yahoo! для индексации поискового трафика.

В 2006 году проект был выделен в отдельное направление Apache Software Foundation и получил название в честь игрушечного слоника персонажа Эрика Реймонда. В 2008 году Hadoop стал проектом уровня Apache, а к 2009 году на его основе работали крупнейшие кластеры в индустрии — до 10 000 узлов.

Архитектура

Hadoop Distributed File System (HDFS)

HDFS — распределённая файловая система, предназначенная для хранения больших файлов (обычно от гигабайтов до терабайтов) с высокой пропускной способностью потокового чтения. Файл разбивается на блоки фиксированного размера (по умолчанию 128 МБ), каждый блок реплицируется на несколько узлов кластера (по умолчанию — три копии).

Архитектура HDFS включает два типа узлов:

  • NameNode — узел, хранящий метаданные файловой системы: дерево каталогов, список файлов, карту распределения блоков по дата-нодам.
  • DataNode — рабочие узлы, непосредственно хранящие блоки данных.

При выходе из строя дата-ноды NameNode обнаруживает потерю реплик через механизм «сердцебиения» (heartbeat) и инициирует восстановление недостающих копий на другие узлы.

MapReduce

MapReduce — модель параллельной обработки данных, в которой задача разбивается на две фазы:

  1. Map — каждая входная запись независимо преобразуется в пары «ключ-значение».
  2. Reduce — значения, сгруппированные по ключу, сводятся к итоговому результату.

Промежуточные данные передаются по сети и сортируются, что позволяет обрабатывать данные, не помещающиеся в память одного узла.

YARN

В версии Hadoop 2.0 (2013 год) была введена подсистема планирования ресурсов YARN (Yet Another Resource Negotiator), отделившая управление кластером от модели вычислений. YARN распределяет процессорную память и процессорное время между приложениями, что позволило запускать на одном кластере не только MapReduce, но и другие фреймворки — Spark, Flink, Tez.

Экосистема

Вокруг ядра Hadoop сформировалась обширная экосистема компонентов:

КомпонентНазначение
HiveSQL-интерфейс поверх HDFS и MapReduce
HBaseРаспределённая NoSQL-база данных
PigЯзык потоковой обработки данных
ZooKeeperКоординация распределённых служб
SqoopПеренос данных между HDFS и реляционными СУБД
FlumeСбор логов и потоковых данных
OozieПланирование и оркестрация задач

Применение

Hadoop применяется в задачах, где объём данных превышает возможности одного сервера:

  • хранение и обработка логов веб-серверов и приложений;
  • построение поисковых индексов;
  • аналитика поведения пользователей;
  • обработка данных в сфере телекоммуникаций, финансах, здравоохранении.

В России Hadoop-совместимые решения используются в крупных банках, телекоммуникационных операторах и государственных информационных системах. Развиваются отечественные дистрибутивы на основе Hadoop и HDFS-совместимых хранилищ — в частности, решения на базе проекта AltLinux и коммерческие продукты российских вендоров, ориентированные на импортозамещение в сфере больших данных.

Ограничения

Hadoop оптимизирован для пакетной обработки больших объёмов данных с высокой пропускной способностью, но демонстрирует высокую задержку при запросах к небольшим объёмам данных. Модель MapReduce требует промежуточной записи промежуточных результатов на диск, что снижает производительность по сравнению с алгоритмами, выполняющими вычисления в памяти — в частности, Apache Spark. Для интерактивной аналитики Hadoop часто заменяется или дополняется более быстрыми системами.

Исторически сложилось, что Hadoop стал основой индустрии больших данных, однако с 2010-х годов его позиции постепенно занимают облачные объектные хранилища и вычислительные платформы, не требующие самостоятельного администрирования кластера.

Источники:

  • Apache Software Foundation. Apache Hadoop Documentation.
  • White T. Hadoop: The Definitive Guide. O'Reilly Media.
  • Shvachko K., Huang H., Radia S., Chansler R. The Hadoop Distributed File System // IEEE MSST, 2010.
  • Dean J., Ghemawat S. MapReduce: Simplified Data Processing on Large Clusters // OSDI, 2004.
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru