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

DataNode

DataNode — это вычислительный узел в распределённых файловых системах (например, Hadoop Distributed File System, HDFS), отвечающий за хранение, чтение и запись блоков данных по запросу клиентов или управляющего узла (Namenode). DataNode является ключевым компонентом архитектуры «главный-подчинённый» (master-slave), где он выполняет роль рабочего элемента, обеспечивающего отказоустойчивость и масштабируемость хранения больших объёмов данных (big data).

Архитектура и принцип работы

Роль в распределённой файловой системе

В экосистеме Apache Hadoop DataNodы вместе с Namenode образуют основу HDFS. Namenode управляет метаданными (имена файлов, структура каталогов, соответствие блоков данным), а DataNodы физически хранят блоки данных (обычно размером 128 МБ или 256 МБ) на локальных дисках. Каждый блок реплицируется на несколько DataNode (обычно на 3) для обеспечения отказоустойчивости.

При чтении файла клиент сначала обращается к Namenode за списком блоков и адресами их хранения, после чего напрямую взаимодействует с соответствующими DataNodами. При записи клиент запрашивает у Namenode список подходящих DataNode для размещения реплик, затем последовательно передаёт данные через конвейер (pipeline).

Внутреннее устройство DataNode

DataNode реализован как Java-процесс, который:

Файлы блоков хранятся в каталоге dfs.datanode.data.dir, а метаданные о контрольных суммах — в файлах .meta (организация признана экстремистской, деятельность запрещена в РФ).

Управление и мониторинг

Запуск и конфигурация

DataNode запускается командой hdfs datanode или через start-dfs.sh. Основные параметры задаются в файле hdfs-site.xml:

В современных версиях Hadoop (начиная с 2.x) DataNode поддерживает «тома» (volumes) — логические единицы, соответствующие разным дискам. Это позволяет балансировать нагрузку между физическими носителями.

Балансировка и восстановление

При выходе из строя одного DataNode Namenode через некоторое время (таймаут по умолчанию 10 минут) помечает его блоки как нереплицированные и запускает процесс репликации на живые DataNode. Утилита hdfs balancer позволяет равномерно распределить блоки между узлами кластера.

Безопасность и контроль целостности

Проверка данных

DataNode постоянно проверяет контрольные суммы (CRC32C) сохранённых блоков. При каждом чтении клиент может запросить проверку, а регулярные фоновые сканы (block scanner) выявляют повреждённые блоки. Обнаруженные битые блоки сообщаются Namenode, который инициирует их восстановление с других реплик.

Аутентификация

Начиная с Hadoop 2.0, DataNode поддерживает Kerberos-аутентификацию. Без неё (в режиме простой аутентификации) DataNode принимает запросы только от Namenode с совпадающим IP-адресом и клиентов с правильным идентификатором блока.

Классификация DataNode

По роли в архитектуре

По типу хранилища

Применение в различных технологиях

Apache HDFS

DataNode — базовая единица хранения во всех дистрибутивах Hadoop (Cloudera, Hortonworks, MapR). Кластеры могут включать от трёх до нескольких тысяч DataNode, каждый из которых обслуживает 10–50 ТБ данных.

Apache HBase

В HBase DataNode используется как нижний слой хранения данных через HDFS. RegionServer HBase работает поверх HDFS, а DataNode обеспечивает репликацию и отказоустойчивость.

Apache Spark и MapReduce

При выполнении задач Spark или MapReduce DataNode предоставляет данные для локальной обработки (data locality), минимизируя сетевые передачи. Механизм «вычисления рядом с данными» (compute near data) — ключевое преимущество HDFS.

Облачные и коммерческие реализации

Преимущества и ограничения

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

Ограничения

История и развитие

Зарождение идеи (2000-е)

Концепция DataNode восходит к проекту Google File System (2003), где описан чанк-сервер (chunk server). Разработка Hadoop началась в 2005 году под руководством Дага Каттинга. Первая версия HDFS (0.1.0) вышла в 2006 году и уже включала DataNode с репликацией.

Эволюция функциональности

Современные тенденции

В 2020-е годы развитие DataNode сосредоточено на:

Источники

  1. Apache Hadoop Documentation — «HDFS Architecture Guide» (The Apache Software Foundation)
  2. White, T. (2020) — «Hadoop: The Definitive Guide», 4th Edition (O'Reilly Media)
  3. George, L. (2016) — «HBase: The Definitive Guide» (O'Reilly Media)
  4. Ghemawat, S., Gobioff, H., Leung, ST. (2003) — «The Google File System» (ACM SIGOPS Operating Systems Review)
  5. Официальная документация Apache Hadoop 3.x — «DataNode Administration» (hadoop.apache.org)
  6. DataStax (2018) — «Cassandra vs HDFS: DataNode Architecture Comparison» (DataStax Docs)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →