В чем разница между Hadoop и HDFS?

«В чем разница между Hadoop и HDFS?» — вопрос из категории Hadoop и HDFS, который задают на 33% собеседований Data Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Hadoop — это экосистема с открытым исходным кодом для распределенной обработки и хранения больших данных. HDFS (Hadoop Distributed File System) — это один из ключевых компонентов этой экосистемы, отвечающий именно за хранение.

HDFS (Файловая система):

  • Назначение: Надежное, отказоустойчивое, горизонтально масштабируемое хранение очень больших файлов (гигабайты, терабайты) на кластере из commodity-серверов.
  • Архитектура: Работает по модели master/slave:
    • NameNode (master): Управляет метаданными файловой системы (иерархия файлов, блоки, их расположение).
    • DataNode (slave): Хранит фактические блоки данных (обычно по 128 МБ) и обслуживает операции чтения/записи.
  • Принципы: Данные разбиваются на блоки, которые реплицируются (по умолчанию 3 копии) на разные узлы кластера для отказоустойчивости.

Hadoop (Экосистема):

  • Состав: Включает несколько модулей, ключевые из которых:
    1. HDFS — для хранения (как описано выше).
    2. MapReduce — устаревшая, но исторически первая вычислительная модель/фреймворк для пакетной обработки данных, хранящихся в HDFS.
    3. YARN (Yet Another Resource Negotiator) — фреймворк для управления ресурсами кластера и планирования задач. Позволяет запускать на одном кластере различные движки обработки (MapReduce, Spark, Tez).
  • Назначение: Предоставить полный стек для работы с Big Data: от хранения (HDFS) до управления ресурсами (YARN) и выполнения вычислительных задач (различные движки).

Аналогия:

  • HDFS — это как «жесткий диск» всего кластера Hadoop.
  • Hadoop (ядро) — это «компьютер», который включает этот диск (HDFS), операционную систему для управления задачами (YARN) и базовый набор программ для вычислений (MapReduce).

Современный контекст: Сегодня HDFS часто используется независимо от остальных компонентов Hadoop (например, как хранилище для Apache Spark). А сама экосистема Hadoop расширилась далеко за пределы HDFS+YARN+MapReduce, включив десятки проектов вроде Hive, HBase, Spark (который изначально работал поверх Hadoop).