IT科技

當前位置 /首頁/IT科技 > /列表

hdfs工作原理

hdfs工作原理如下:

hdfs工作原理

1、客戶端透過調用FileSystem對象的open括號來讀取希望開啟的檔案。對於HDFS來說,這個對象是分佈式檔案系統的一個實例。

2、DistributedFileSystem透過RPC來調用namenode,以確定檔案的開頭部分的塊位置。對於每一塊,namenode返回具有該塊副本的datanode地址。此外,這些datanode根據他們與client的距離來排序(根據網絡集羣的拓撲)。如果該client本身就是一個datanode,便從本地datanode中讀取。DistributedFileSystem返回一個FSDataInputStream對象給client讀取數據,FSDataInputStream轉而包裝了一個DFSInputStream對象。

3、接着client對這個輸入流調用read()。存儲着檔案開頭部分的塊的數據節點的地址DFSInputStream隨即與這些塊最近的datanode相連接。

4、透過在數據流中反覆調用read(),數據會從datanode返回client。

5、到達塊的末端時,DFSInputStream會關閉與datanode間的聯繫,然後爲下一個塊找到最佳的datanode。client端只需要讀取一個連續的流,這些對於client來說都是透明的。

6、在讀取的時候,如果client與datanode通信時遇到一個錯誤,那麼它就會去嘗試對這個塊來說下一個最近的塊。它也會記住那個故障節點的datanode,以保證不會再對之後的塊進行徒勞無益的嘗試。 client也會確認datanode發來的數據的校驗和。如果發現一個損壞的塊,它就會在client試圖從別的datanode中讀取一個塊的副本之前報告給namenode。

7、這個設計的一個重點是,client直接聯繫datanode去檢索數據,並被namenode指引到塊中最好的datanode。因爲數據流在此集羣中是在所有datanode分散進行的。

TAG標籤:hdfs #