HDFS上傳數據的流程

1.當客戶端輸入一條指令:hdfs dfs -put text.txt /text時,這條命令會給到DistributeFileSystem。緩存

2.經過DistributeFileSystem簡稱DFS會建立DFSClient。服務器

3.DFSClient會與hdfs服務器創建RPC通信,此時客戶端就能夠訪問NameNode,並向其發送請求,而且NameNode接到請求命令oop

後會返回一個NameNode代理對象(NameNodeProxies)。學習

4.客戶端經過代理對象NameNodeProxies請求建立文件元信息。代理

5.NameNode接受請求後就開始建立文件元信息,這些元信息包括:文件名:text.txt、存儲路徑:/text、文件大小:1KB、冗餘度:三、數據塊:對象

根據文件大小會切分紅多個數據塊,若是文件更大,會緩存文件元信息(緩存大小默認爲1000M,可更改),數據塊能夠分別存到3個副本中:循環

DataNode一、DataNode二、DataNode3請求

6.NameNode向客戶端返回能夠存數據的DataNode,這裏遵循機架感應原則。總結

7.客戶端根據返回的信息先將文件分塊(Hadoop2.x版本每個block爲128M,而以前的版本爲64M)。通信

8.客戶端根據NameNode返回的DataNoded的地址信息直接發送給DataNode,並經過建立輸出流OutputStream寫入到hdfs中,同時DataNode

會複製到其餘兩臺機器,完成循環上傳。

9.上傳完成後,DataNode向客戶端通訊表示已經傳完數據塊,同時向NameNode報告,數據上傳完成。

以上是我經過學習,本身總結的hdfs的上傳流程,歡迎你們指正,我會根據你們的反饋認真改進完善!

相關文章
相關標籤/搜索