1. 程式人生 > >HDFS上傳檔案

HDFS上傳檔案

1.client端向namenode請求上傳檔案,檢視檔案是否存在,是否有許可權往hdfs寫入

2.如果檔案不存在,許可權OK就根據副本數N(例如2個),根據網路拓撲選擇N個離client端最近的datanode返回client。

(把檔案切塊,一個一個block塊的請求namenode,返回最優的datanode,datanode要定期向namenode傳送心跳,預設3秒,看是否存活,如果死掉,選擇返回的主機時就會排除掉死掉的主機)

3.block1與返回的其中一臺主機建立聯絡(dfs01),這臺主機會與另外返回的主機建立聯絡(dfs02),形成管道流。

4.client把block資料線讀到記憶體,然後切分成packet的形式沿著管道流傳送,傳送到每臺建立聯絡的主機。

5.傳送block1完成後,從最後一臺主機返回ack響應,沿著管道流響應給client。

6.傳送block1完成後,就傳送下一個block,同上。

7.當所有block存完後,client會要求namenode關閉管道流。