Ответ
Hadoop — это экосистема с открытым исходным кодом для распределенной обработки и хранения больших данных. HDFS (Hadoop Distributed File System) — это один из ключевых компонентов этой экосистемы, отвечающий именно за хранение.
HDFS (Файловая система):
- Назначение: Надежное, отказоустойчивое, горизонтально масштабируемое хранение очень больших файлов (гигабайты, терабайты) на кластере из commodity-серверов.
- Архитектура: Работает по модели master/slave:
- NameNode (master): Управляет метаданными файловой системы (иерархия файлов, блоки, их расположение).
- DataNode (slave): Хранит фактические блоки данных (обычно по 128 МБ) и обслуживает операции чтения/записи.
- Принципы: Данные разбиваются на блоки, которые реплицируются (по умолчанию 3 копии) на разные узлы кластера для отказоустойчивости.
Hadoop (Экосистема):
- Состав: Включает несколько модулей, ключевые из которых:
- HDFS — для хранения (как описано выше).
- MapReduce — устаревшая, но исторически первая вычислительная модель/фреймворк для пакетной обработки данных, хранящихся в HDFS.
- 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).