hdfs的寫入過程和讀取過程

2022-06-10 20:15:12 字數 1064 閱讀 2838

1、客戶端(client)發出請求(將請求發給namenode),要將大小為300m的a.txt檔案上傳到 根目錄下(/a.txt)

2、namenode對收到的請求做出檢測;檢測1:所上傳的路徑下是否存在該檔案,(即根目錄下是否有a.txt),檢測2:檢測客戶端是否有上傳許可權

3、檢測通過,反饋給客戶端 可以上傳的指令

4、客戶端接到反饋,將檔案進行預處理(a.txt大小為300m,乙個block的大小預設為128m,因此分為3個block(如上圖紅、藍、淺紫色三塊block),編號為block0,block1,block2,其中block2不滿128m),向namenode發出上傳block0的請求。

5、namenode根據集群中各個datanode上的block資訊和機架感知,選出可以上傳的3個主機(a.txt有三個副本),分別是datanode1,datanode2,datanode3

6、將datanode列表(這裡有三個)返回給客戶端。

7、客戶端和datanode1建立輸出流pipeline,用於傳輸檔案

datanode1與datanode2之間建立輸出流,datanode2與datanode3之間建立輸出流。

8、客戶端將每個大小為128m的block切分為64kb的資料報(單位為packet,64kb)並傳輸給datanode1。

9、datanode1接收packet資訊並快取到對應的目錄下,再將packet傳輸給datanode2,同理datanode2接收packet資訊並快取到對應目錄下,再傳給datanode3,datanode3接收packet,並快取。

10、 最後一台機器快取完packet資訊後會依次向上一級傳送應答,最終第一台機器datanode1向客戶端傳送快取完成的應答。

11、跳轉到第四步,客戶端向namenode發出上傳block1的請求,重複4-10,直到第三個block2傳輸完成後,寫入完成。

HDFS檔案的寫入和讀取過程

hdfs檔案寫入 client 發起檔案上傳請求,通過 rpc 與 namenode 建立通訊namenode 檢查目標檔案是否已存在,父目錄是否存在,返回是否可以上傳client請求上傳第乙個 block namenode 根據配置檔案中指定的備份數量及機架感知原理進行檔案分配,返回可用的 dat...

hdfs檔案寫入與讀取過程

client向namenode請求上傳a.txt namenode檢測client的上傳許可權 namenode回答client是否可以上傳 client將檔案按照block size大小將檔案分為幾份,並向namenode請求上傳乙個block namenode根據datanode上的block資...

HDFS的寫入過程

client發起檔案上傳請求,通過rpc與namenode建立通訊,namenode檢查目標檔案是否已經存在,父目錄是否存在,返回是否可以上傳。client請求第乙個block該傳輸到哪些datanode伺服器上 namenode根據配置檔案中指定的備份數量以及機架感知原理進行檔案分配,返回可用的d...