Пример ответа
1) Короткий ответ
Кластер Hadoop — это вся распределенная система целиком, состоящая из множества компьютеров, а нода (узел) — это отдельный физический или виртуальный сервер, который является частью этого кластера.
2) Сравнение: Кластер vs Ноды в Hadoop
* Масштаб и роль:
* Кластер: Вся инфраструктура Hadoop как единое целое. Включает все ноды, сетевое взаимодействие и распределенную файловую систему (HDFS).
* Нода: Отдельный сервер (компьютер) в кластере. Каждая нода выполняет определенную роль: Master (управляющая) или Slave (рабочая).
* Типы нод и их функции:
* NameNode (Master нода): Управляет метаданными HDFS (имена файлов, блоки, расположение). "Мозг" кластера (только одна активная нода в кластере).
* DataNode (Slave нода): Хранит фактические данные в виде блоков. Выполняет операции чтения/записи (сотни/тысячи нод в кластере).
* ResourceManager (Master нода): Управляет ресурсами кластера и планированием задач для YARN.
* NodeManager (Slave нода): Запускает и отслеживает задачи на отдельных нодах.
* Взаимодействие:
* Кластер: Координирует работу всех нод для выполнения распределенных вычислений.
* Нода: Выполняет локальные задачи (хранение блоков данных, обработка задач MapReduce).
Рекомендация: Для отказоустойчивости кластера критически важны Master-ноды (требуют резервирования), а масштабирование достигается добавлением Slave-нод.
5) Пример архитектуры минимального кластера
```
Кластер Hadoop:
├── Master-ноды (3 сервера)
│ ├── NameNode (активный)
│ ├── NameNode (резервный)
│ └── ResourceManager
└── Slave-ноды (10+ серверов)
├── DataNode (на каждой ноде)
└── NodeManager (на каждой ноде)
```
6) Follow-up (вопросы интервьюеров + короткие ответы):
* Что произойдет при отказе DataNode?
* Ответ: Автоматическая репликация данных с других нод (HDFS).
* Как масштабировать кластер Hadoop?
* Ответ: Добавлением новых Slave-нод.
7) Практический совет (2 шага на неделю):
1. Изучите состав кластера: Установите Hadoop в псевдо-распределенном режиме и выполните команды hdfs dfsadmin -report
(покажет DataNodes) и yarn node -list
(покажет NodeManagers).
2. Рассчитайте конфигурацию: Для проекта с 100 ТБ данных спроектируйте кластер: рассчитайте количество DataNodes (исходя из размера блока 128 МБ и фактора репликации 3) и объем памяти для NameNode (исходя из ~300 байт на блок).