Hadoop HDFS的資料流程

2021-10-03 10:01:37 字數 1015 閱讀 2387

hdfs資料寫入流程

客戶端通過distributed filesystem模組向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。

namenode返回是否可以上傳。

客戶端請求第乙個 block上傳到哪幾個datanode伺服器上。

namenode返回3個datanode節點,分別為dn1、dn2、dn3。

客戶端通過fsdataoutputstream模組請求dn1上傳資料,dn1收到請求會繼續呼叫dn2,然後dn2呼叫dn3,將這個通訊管道建立完成。

dn1、dn2、dn3逐級應答客戶端。

客戶端開始往dn1上傳第乙個block(先從磁碟讀取資料放到乙個本地記憶體快取),以packet為單位,dn1收到乙個packet就會傳給dn2,dn2傳給dn3;dn1每傳乙個packet會放入乙個應答佇列等待應答。

當乙個block傳輸完成之後,客戶端再次請求namenode上傳第二個block的伺服器。(重複執行3-7步)。

網路拓撲-節點距離計算

在hdfs寫資料的過程中,namenode會選擇距離待上傳資料最近距離的datanode接收資料。那麼這個最近距離怎麼計算呢?

節點距離:兩個節點到達最近的共同祖先的距離總和。

機架感知(副本儲存節點擊擇)

hdfs的讀資料流程

挑選一台datanode(就近原則,然後隨機)伺服器,請求讀取資料。

datanode開始傳輸資料給客戶端(從磁碟裡面讀取資料輸入流,以packet為單位來做校驗)。

客戶端以packet為單位接收,先在本地快取,然後寫入目標檔案。

Hadoop HDFS資料流詳細說明

服務端啟動hdfs中的nn和dn程序 客戶端建立乙個分布式檔案系統客戶端,由客戶端向nn傳送請求,請求上傳檔案 nn處理請求,檢查客戶端是否有許可權上傳,路徑是否合法等 檢查通過,nn響應客戶端可以上傳 客戶端根據自己設定的塊大小,開始上傳第乙個塊,預設0 128m,nn根據客戶端上傳檔案的副本數 ...

Hadoop HDFS讀寫流程

1 客戶端呼叫 distributedfilesystem 的 open 方法開啟檔案。2 distributedfilesystem 用 rpc 連線到 namenode 請求獲取檔案的資料塊的資訊 namenode 返回檔案的部分或者全部資料塊列表 對於每個資料塊,namenode 都會返回該資...

HDFS的寫資料流程以及異常寫資料流程

服務端啟動hdfs中的nn和dn程序 客戶端建立乙個分布式檔案系統客戶端,由客戶端向nn傳送請求,請求上傳檔案 nn處理請求,檢查客戶端是否有許可權上傳,路徑是否合法等 檢查通過,nn響應客戶端可以上傳 客戶端根據自己設定的塊大小,開始上傳第乙個塊,預設0 128m,nn根據客戶端上傳檔案的副本數 ...