HDFS 讀取流程

2021-10-19 08:14:51 字數 502 閱讀 7039

先看圖

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 副本的...