В HDFS Hadoop запрос операции клиента, будь то загрузка данных или выгрузка данных, принимается и обрабатывается NameNode. Наконец, данные сохраняются в узле данных DataNode в виде блоков данных. На рисунке ниже показан процесс загрузки данных HDFS.
Видеообъяснение следующее:
Предположим, вам нужно загрузить файл размером 200 МБ. В соответствии с размером блока данных 128 МБ файл будет разделен на два блока данных. После того, как клиент выдает команду загрузки, объект DFSClient создается объектом DistributedFileSystem. Этот объект отвечает за установление связи RPC с NameNode и запрос к NameNode для создания метаинформации для файла. Когда NameNode получит запрос, он сгенерирует соответствующую метаинформацию, как показано в шаге 4 на рисунке. Метаинформация включает в себя следующее содержимое: количество блоков данных, мест хранения и избыточных мест. Например: блок данных 1 будет сохранен в DataNode1, и в то же время соответствующие две резервные копии будут храниться в DataNode2 и DataNode3. NameNode вернет сгенерированную метаинформацию в объект DistributedFileSystem и создаст объект выходного потока FSDataOutputStream. Затем фрагменты данных загружаются на основе сгенерированной метаинформации. Например, как показано на рисунке в шаге 7, клиент загрузит блок данных 1 в DataNode1 и скопирует его на другие резервные узлы посредством горизонтальной репликации, в конечном итоге обеспечив требования к избыточности блоков данных. Так до тех пор, пока все блоки данных не будут успешно загружены.
Узнав о процессе загрузки данных HDFS, следующий рисунок иллюстрирует процесс загрузки данных HDFS.
Видеообъяснение следующее: