淺談HDFS的讀流程

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

二、Namenode會視狀況返回文件的部分或者所有block列表,對於每一個block,Namenode都會返回有該block拷貝的DataNode地址;ide

三、客戶端Client會選取離客戶端最近的DataNode來讀取block;若是客戶端自己就是DataNode,那麼將從本地直接獲取數據;spa

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

五、當讀完列表block後,且文件讀取尚未結束,客戶端會繼續向Namenode獲取下一批的block列表;blog

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

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


相關文章
相關標籤/搜索