先看圖
hdfs客戶端要讀取資料首先必須和namenode 建立連線,獲取datanode資訊。
namenode會根據客戶端的實體地址返回乙個由近到遠的塊位址列表。
客戶端拿到列表後和最近的進行連線讀取資料
hdfs中塊是由乙個完整的檔案分成多個塊,而每個塊可能儲存在不同機架上。
每個塊中除了資料還儲存了所在檔案的偏移量。
所以讀取到不同的塊後可以再組成乙個完整的檔案。
如何判斷塊是可靠的?
每個塊都由乙個通過計算得到的code,這是在寫入的時候就計算好的。讀取後根據這個塊還會計算一遍,如果2者相同則表示可靠,否則表示異常。
客戶端會再去其他datanode中讀取一遍
HDFS讀取流程和寫流程
讀 1.客戶端或者使用者通過呼叫 filesystem 物件的 open 方法開啟需要讀取的檔案,這對 hdfs 來說是常見乙個分布式檔案系統的乙個讀取例項。2.filesystem 通過遠端協議呼叫 namenode 確定檔案的前幾個 block 的位置。對於每乙個 block,namenode ...
HDFS寫入與讀取流程
那麼問題來了,如果他們之間的乙個datanode突然壞掉了怎麼辦。1 如果傳輸過程中,有某個datanode出現了故障,那麼當前的pipeline會被關閉,出現故障的datanode會從當前的pipeline中移除,剩餘的block會繼續剩下的datanode中繼續以pipeline的形式傳輸,同時...
HDFS讀取資料的流程
1 客戶端通過呼叫filesystem物件的open 來讀取希望開啟的檔案。2 client向namenode發起rpc請求,來確定請求檔案block所在的位置 3 namenode會視情況返回檔案的部分或者全部block列表,對於每個block,namenode 都會返回含有該 block 副本的...