DataNode

Узлы DataNode являются главными средствами хранения данных и обеспечения вычислительными ресурсами. Многие полагают, что по этой причине для них необходимо наилучшее оборудование. Однако в основу Hadoop положен принцип использования этих узлов в качестве расходного материала. В этом смысле их производительность должна быть достаточной для выполнения задач кластера, но при невысокой стоимости, так чтобы при выходе из строя их можно было заменить на другие без значительных затрат. Разработчики Hadoop принимают во внимание частоту отказов в больших кластерах как одну из наиболее важных характеристик. В Hadoop решение проблемы отказа оборудования перенесено с оборудования на программное обеспечение.

Узел DataNode выполняет следующие операции:

  • запись и чтение блоков данных по запросам от клиентов;

  • выполнение задач MapReduce;

  • посылка периодических контрольных пакетов (heartbeat) и отчетов о состоянии блоков (block reports) в узел NameNode;

  • участие в процессе репликации блоков данных.

Необходимость в RAID

Hadoop обеспечивает резервирование на различных уровнях. Каждый узел DataNode хранит некоторые блоки файлов HDFS, которые имеют множество реплик на других узлах. Поэтому в случае отказа одиночного узла данные остаются доступными. Кластер допускает даже отказ большего количества узлов в зависимости от выбранной вами настройки. Более того, Hadoop позволяет указать распределение узлов по стойкам с тем, чтобы сохранять реплики данных в серверах, входящих в разные стойки. В таком случае существенно увеличивается вероятность сохранности данных даже при выходе из строя целой стойки (хотя строгая гарантия отсутствует). Такой подход исключает необходимость инвестировать в контроллеры RAID для узлов DataNode.

Средства хранения

Обычно один узел DataNode содержит 12-24 дисков с емкостью по 1 ТБ. Вместо объединения их в массив RAID лучше использовать их как простой набор дисков (Just a Bunch of Disks, JBOD). Это обеспечивает более высокую производительность и снижает расходы на оборудование. Не следует беспокоиться по поводу отказа отдельного диска, поскольку HDFS обеспечивает резервирование.

Допустимое количество узлов DataNode зависит от объема оперативной памяти NameNode. Помните, что узел NameNode задействует примерно 1 ГБ памяти на миллион блоков HDFS. По умолчанию размер блока HDFS составляет 128 МБ.

Обычно такие узлы организуют в виде серверов со стандартным форм-фактором (высотой 1U-2U и шириной 19 дюймов) в составе стоек или кабинетов.

Оперативная память

Кроме хранения данных, узел DataNode обрабатывает данные, в том числе, исполняет задачи MapReduce. Задания MapReduce разделены на множество задач, которые исполняют параллельно множество узлов DataNode. Чтобы задание получило согласованный логичный результат, все его задачи должны быть выполнены.

Процессоры

Рекомендуем материнские платы с двумя сокетами под процессоры, каждый процессор с восемью ядрами и тактовой частотой 2.5-3 ГГц. Обычно используют архитектуру Intel.

Подключение к сети

Как и для NameNode, высокоскоростное подключение к сети необходимо для узлов DataNode. Поэтому рекомендуем использовать пару связанных каналов 10 Гбит/с. Эта связанная пара обеспечивает достаточную избыточность и также увеличивает пропускную способность до 20 Гбит/с. Для кластеров небольших размеров (менее 50 узлов) достаточно соединения 1 Гбит/с.

Нашли ошибку? Выделите текст и нажмите Ctrl+Enter чтобы сообщить о ней