當前位置:生活全書館 >

IT科技

> hdfs工作原理

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分散進行的。

標籤: hdfs
  • 文章版權屬於文章作者所有,轉載請註明 https://shqsg.com/dianzi/xvo2o3.html