HDFS讀檔案解析

來源:互聯網
上載者:User

描述了在檔案讀過程中,client、NameNode和DataNode三者之間是如何互動的。

1.  client調用get方法得到HDFS檔案系統的一個執行個體(DistributedFileSystem)。然後調用它的open方法。

2. 
DistributedFileSystem通過RPC遠程調用NameNode決定檔案檔案的block的位置資訊(通過它的屬性DFSClient的方法。)。對於每一個
bolck,NameNode返回block所在的DataNode(包括副本)的地址。DistributedFileSystem返回
FSDataInputStream給client用來讀資料。FSDataInputStream封裝了DFSInputStream用於管理
NameNode和DataNode的IO。

3.  client調用FSDataInputStream的read方法。

4.  DFSInputStream儲存了block塊所在的DataNode的地址資訊。
DFSInputStream串連第一個block的DataNode,read block資料,傳回給client。

5.  當第一個block讀完,DFSInputStream關掉與這個DataNode的串連。然後開始第二個block。

6.  當client讀結束,調用FSDataInputStream的close方法。

在讀的過程中,如果client和一個datanode通訊時出錯,他會串連副本所在的datanode。這種client直接連接
datanode讀取資料的設計方法使HDFS可以同時相應很多client的同時並發。因為資料流量均勻的分布在所有的datanode
上,NameNode只負責block的位置資訊請求。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.