Apache Hadoop

Материал из Энциклопедия интернет-маркетинга MarketWiki

Apache Hadoop - это открытая программная платформа для распределённого хранения и обработки больших данных (Big Data) на кластерах из обычного серверного оборудования. Hadoop реализует модель параллельных вычислений MapReduce и используется для обработки и анализа больших объёмов структурированных и неструктурированных данных.

Платформа применяется в Big Data, интернет-аналитике, маркетинговой аналитике, обработке данных из CRM и систем веб-аналитики (Google Analytics, Яндекс Метрика), а также при построении хранилищ данных и Data Lake.

Например, в интернет-маркетинге Hadoop может использоваться для анализа миллионов событий поведения пользователей (просмотры, клики, покупки), объединённых с данными CRM и систем лояльности, с целью построения моделей прогнозирования оттока клиентов или персонализации рекомендаций.

Hadoop был создан в 2005-2006 годах Дугом Каттингом и Майком Кафареллой на основе поисковой системы Nutch. В 2006 году проект был передан в Apache Software Foundation и стал одним из стандартов обработки больших данных.

Коротко: Hadoop позволяет хранить и обрабатывать большие объёмы данных (терабайты и петабайты) не на одном сервере, а на множестве обычных машин, распределяя нагрузку и повышая отказоустойчивость.

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

[править]

Hadoop состоит из набора модулей, каждый из которых отвечает за отдельный слой обработки данных.

  • Hadoop Common - базовые библиотеки и утилиты.
  • HDFS (Hadoop Distributed File System) - распределённая файловая система для хранения данных.
  • YARN (Yet Another Resource Negotiator) - система управления ресурсами кластера и планирования задач.
  • MapReduce - модель и движок распределённой обработки данных.

Ключевая идея Hadoop: «перенос вычислений к месту хранения данных» (Move computation to data, not data to computation).

Как работает Hadoop

[править]

1. Хранение данных (HDFS)

[править]

HDFS делит файлы на блоки (обычно 128-256 МБ) и распределяет их по узлам кластера.

Основные компоненты:

  • NameNode - хранит метаданные (структуру файлов и расположение блоков).
  • DataNode - хранит сами данные и выполняет операции чтения и записи.

Для отказоустойчивости каждый блок данных реплицируется (обычно 3 копии).

2. Управление ресурсами (YARN)

[править]

YARN отвечает за распределение вычислительных ресурсов:

  • ResourceManager - управляет ресурсами всего кластера.
  • NodeManager - управляет ресурсами конкретного узла.
  • ApplicationMaster - координирует выполнение конкретного приложения.

3. Обработка данных (MapReduce)

[править]

MapReduce состоит из трёх этапов:

  • Map - обработка входных данных и генерация пар (ключ, значение).
  • Shuffle and Sort - группировка и сортировка данных по ключам.
  • Reduce - агрегация результатов.

Экосистема Hadoop

[править]
Проект Назначение
Apache Hive SQL-интерфейс для запросов к данным в HDFS
Apache HBase NoSQL-база данных поверх HDFS
Apache Pig Скриптовый язык обработки данных
Apache Spark Быстрый движок обработки данных (in-memory)
Apache Flume Сбор и загрузка логов в HDFS
Apache Sqoop Обмен данными с реляционными базами данных
Apache Oozie Оркестрация и планирование задач
Apache ZooKeeper Сервис координации распределённых систем

Преимущества

[править]
  • Масштабируемость до тысяч узлов.
  • Отказоустойчивость за счёт репликации.
  • Низкая стоимость (обычное серверное оборудование).
  • Гибкость хранения (структурированные и неструктурированные данные).
  • Большая экосистема инструментов.

Недостатки

[править]
  • Сложность внедрения и поддержки.
  • Высокая задержка (не подходит для real-time задач).
  • Неэффективность для малых объёмов данных.
  • Сложность архитектуры и администрирования.
  • Отсутствие встроенного машинного обучения (в базовой версии).

Где используется

[править]
  • Big Data и маркетинговая аналитика.
  • E-commerce (рекомендательные системы, анализ поведения).
  • Телеком (анализ звонков и оттока).
  • Финансы (обнаружение мошенничества, скоринг).
  • Социальные сети (рекомендации и таргетинг).
  • Интернет вещей (обработка данных с датчиков).

Сравнение с альтернативами

[править]
Альтернатива Ключевое отличие
Apache Spark Быстрее за счёт работы в памяти
ClickHouse Аналитическая колоночная СУБД для SQL-запросов
Apache Flink Потоковая обработка в реальном времени
Облачные DWH (BigQuery, Snowflake) Управляемые решения, не требуют администрирования

Часто задаваемые вопросы

[править]

Hadoop или Spark?

[править]

Hadoop - это платформа для хранения и обработки данных. MapReduce медленнее, но надёжен для больших объёмов. Spark - более быстрый движок, который часто работает поверх HDFS. В современных проектах часто используют HDFS (хранение) + Spark (обработка) вместо классического MapReduce.

Заменяет ли Hadoop базы данных?

[править]

Нет. Hadoop используется для хранения и аналитики больших неструктурированных данных. Для транзакционных операций (OLTP) с частыми запросами используются реляционные базы данных.

Hadoop устарел?

[править]

MapReduce используется реже, но HDFS и YARN остаются базой многих Big Data-стеков. В современных проектах Hadoop часто заменяют облачными решениями (BigQuery, Snowflake) или используют Spark поверх HDFS.

Какие навыки нужны для работы с Hadoop?

[править]

Знание экосистемы Hadoop (HDFS, YARN, Hive), SQL (для работы с Hive), базовые навыки администрирования Linux, понимание принципов распределённых систем. Для аналитических задач достаточно SQL и знакомства с Hive.

Сколько стоит внедрение Hadoop?

[править]

Сама платформа бесплатна (Open Source). Основные затраты - на оборудование (серверы, диски, сеть), оплату специалистов по внедрению и поддержке, а также на время настройки и оптимизации кластера. Облачные решения (Dataproc, EMR) позволяют платить только за использованные ресурсы.

Связанные термины

[править]