1. 程式人生 > >HDFS上傳文件

HDFS上傳文件

拓撲 上傳文件 所有 style 副本 不存在 要求 pac pack

技術分享圖片

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關閉管道流。

HDFS上傳文件