HDFS寫資料過程

2021-07-22 13:51:15 字數 733 閱讀 1674

1、客戶端向namenode請求上傳檔案,namenode在元資料中查詢是否滿足上傳條件(路徑是否存在,檔案是否存在等)

2、元資料系統返回資訊告知客戶端,可以上傳檔案

3、rpc請求上傳第乙個block(0-128m),請求返回datanode

4、元資料系統向客戶端返回若干個datanode(因為一塊block有好幾個副本),

選擇datanode考慮因素為datanode的空間和客戶端到datanode網路跳轉的級數(是否乙個機架(路由器)),

比如 如果有三個datanode,選取第乙個datanode的時候如果空間和距離相近,那就隨機選擇一台,

第二台選擇遠的,選擇第二台機架(安全),第三台和第一台一樣。

5、客戶端請求第一台datanode建立block傳輸通道,並告之還要請求第二台第三台,第一台向第二台發出請求建立通道,

第二台向第三台請求建立通道,第三台機器啟動本地流,向第二台機器做出相應,第二台向第一台應答,

第一台向客戶端做出應答,客戶端已乙個乙個小資料報(packet 64k),向第一台機器傳送

第一台在向本地寫資料之前要做驗證,在客戶端檔案到第一台之間會有緩衝,緩衝一邊向第一台寫資料,一邊向第二台傳送

6、只要第一台上傳成功客戶端就認為成功了,及時第二台第三台失敗,namenode 最後會非同步對 資料進行複製

7、如果第一台就上傳失敗,namenode會重新匹配datanode 會連線三次

8、第二個block和上面的步驟一樣

HDFS寫檔案的過程

1 副本及儲存策略 2 寫檔案的網路流量及磁碟空間 網路流量 磁碟空間 檔案size dfs.replication3 寫資料的流程 client將檔案file1劃分出blocks block1 block2 block3.client向nn發出寫block的請求 檔案file1的block1 nn...

HDFS寫資料詳解

hadoop模組每一部分都是分布式的,所以他們之間的通訊都是建立在rpc基礎上的,這點要明白 hdfs寫資料 上傳資料時,datanode的選擇策略 1.第乙個副本先考慮跟client最近的 同機架 2.第二個副本在考慮跨機架選擇乙個datanode,3.第三個副本就在第乙個副本同機架例外挑選乙個d...

HDFS讀寫資料過程

一 檔案的開啟 1.1 客戶端 hdfs開啟乙個檔案,需要在客戶端呼叫distributedfilesystem.open path f,int buffersize 其實現為 public fsdatainputstream open path f,int buffersize throws io...