淺談HDFS的讀流程

1、使用HDFS提供的客戶端Client,向遠程的Namenode發起RPC請求;

2、Namenode會視情況返回文件的部分或者全部block列表,對於每個block,Namenode都會返回有該block拷貝的DataNode地址;

3、客戶端Client會選取離客戶端最近的DataNode來讀取block;如果客戶端本身就是DataNode,那麼將從本地直接獲取數據;

4、讀取完當前block的數據後,關閉當前的DataNode鏈接,併爲讀取下一個block尋找最佳的DataNode;

5、當讀完列表block後,且文件讀取還沒有結束,客戶端會繼續向Namenode獲取下一批的block列表;

6、讀取完一個block都會進行checksum驗證,如果讀取datanode時出現錯誤,客戶端會通知Namenode,然後再從下一個擁有該block拷貝的datanode繼續讀。

客戶端及讀取HDFS中的數據的流程圖



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章