Apache Hadoop DataNode

DataNode в экосистеме Hadoop в первую очередь отвечает за хранение данных приложения в распределенной и реплицированной форме. Он действует как подчиненный в системе и управляется NameNode. Каждый диск в системе Hadoop разделен на несколько блоков, как и традиционное запоминающее устройство компьютера. Блок – это минимальная единица, в которой данные могут быть прочитаны или записаны файловой системой Hadoop. Эта экосистема дает естественное преимущество в разделении больших файлов на эти блоки и хранении их на нескольких узлах. Размер блока узла данных по умолчанию варьируется от 64 МБ до 128 МБ, в зависимости от реализации Hadoop. Это можно изменить через конфигурацию узла данных. HDFS разработана для поддержки очень больших размеров файлов и для семантики на основе однократной записи-чтения-многих.

DataNodes в первую очередь отвечают за хранение и извлечение этих блоков, когда они запрашиваются потребителями через Name Node. В Hadoop версии 3.X DataNode не только хранит данные в блоках, но также распределенным образом контрольную сумму или четность исходных блоков. Узлы данных следуют механизму конвейера репликации для хранения данных в блоках, распространяющих части на другие Data Nodes.

Когда кластер запускается, NameNode запускается в безопасном режиме, пока узлы данных не зарегистрируют информацию блока данных с NameNode. Как только это подтверждено, он начинает взаимодействовать с клиентами для обслуживания запросов. Когда Data node запускается, он сначала соединяется с NameNode, сообщая всю информацию о доступности своих блоков данных. Эта информация регистрируется в NameNode, и когда клиент запрашивает информацию об определенном блоке, NameNode указывает на соответствующие данные не из своего реестра. Затем клиент напрямую взаимодействует с DataNode для чтения / записи блока данных. Во время обработки кластера узел данных периодически связывается с Name Node, отправляя контрольный сигнал.