1)客戶端通過distributed filesystem模組向namenode請求上傳檔案,namenode檢查目標檔案是否已存在,父目錄是否存在。
2)namenode返回是否可以上傳。
3)客戶端請求第乙個 block上傳到哪幾個datanode伺服器上。
4)namenode返回3個datanode節點,分別為dn1、dn2、dn3。
5)客戶端通過fsdataoutputstream模組請求dn1上傳資料,dn1收到請求會繼續呼叫dn2,然後dn2呼叫dn3,將這個通訊管道建立完成。
6)dn1、dn2、dn3逐級應答客戶端。
7)客戶端開始往dn1上傳第乙個block(先從磁碟讀取資料放到乙個本地記憶體快取),以packet為 單位,dn1收到乙個packet就會傳給dn2,dn2傳給dn3;dn1每傳乙個packet會放入乙個應答佇列等待應答。
8)當乙個block傳輸完成之後,客戶端再次請求namenode上傳第二個block的伺服器。(重複執 行3-7步)。
在hdfs寫資料的過程中,namenode會選擇距離待上傳資料最近距離的datanode接收資料。那麼這個最近距離怎麼計算呢?
節點距離:兩個節點到達最近的共同祖先的距離總和。
HDFS的資料流
1.客戶端通過distributed filesystem模組向namenode請求上傳檔案,namnode檢查目標未見是否已經存在,父目錄是否存在.2.namenode返回是否可以上傳 3.客戶端請求第乙個block上傳送到那幾個datanode伺服器上 4.namenode返回三個datanod...
hdfs 資料流(二)
大部分的hdfs程式對檔案操作需要的是一次寫多次讀取的操作模式。乙個檔案一旦建立 寫入 關閉之後就不需要修改了。這個假定簡單化了資料一致的問題和並使高吞吐量的資料訪問變得可能。1.讀檔案 從上圖可以看出,客戶端讀取資料時,首先從namenode獲取如下資訊 這些元資料資訊是在記憶體中,所以查詢速度很...
Hadoop權威指南 HDFS 資料流
目錄剖析檔案寫入 一致模型 客戶端通過呼叫filesystem物件的open 方法來開啟希望讀取的檔案,對於hdfs來說,這個物件是分布式檔案系統的乙個例項 distributedfiltsystem通過使用rpc來呼叫namenode,以確定檔案起始塊的位置.接著,客戶端對這個輸入流呼叫read ...