1:client 發起檔案寫入請求,通過 rpc 與 namenode 建立通訊,namenode檢查目標檔案,返回是否可以上傳;
2:client 請求第乙個 block 該傳輸到哪些 datanode 伺服器上;
3:namenode 根據副本數量和副本放置策略進行節點分配,返回datanode節點,如:a,b,c
4:client 請求a節點建立pipeline管道,a收到請求會繼續呼叫b,然後b呼叫c,將整個pipeline管道建立完成,後逐級返回訊息到client;
5:client收到a返回的訊息之後開始往a上傳第乙個block塊,block塊被切分成64k的packet包不斷的在pepiline管道裡傳遞,從a到b,b到c進行複製儲存
6:當乙個 block塊 傳輸完成之後,client 再次請求 namenode 上傳第二個block塊的儲存節點,不斷往復儲存
7.當所有block塊傳輸完成之後,client呼叫fsdataoutputsteam的close方法關閉輸出流,最後呼叫filesystem的complete方法告知namenode資料寫入成功
HDFS讀取和寫入流程
1 讀檔案的過程 首先 client 通過 file system 的 open 函式開啟檔案,distributed file system 用 rpc呼叫 namenode 節點,得到檔案的資料塊資訊。對於每乙個資料塊,namenode 節點返回儲存資料塊的資料節點的位址。distributed...
HDFS的讀取流程 寫入流程 刪除流程
讀流程 1 客戶端通過rpc訪問namenode。呼叫filesystem的open方法,獲取distributedfilesystem例項 2 namenode查詢元資料,獲取元資料路徑,將檔案的全部或部分檔案塊的儲存路徑,放入佇列,傳送給客戶端。3 客戶端收到佇列 fsdatainputstre...
HFDS的資料寫入流程
首先了解資料寫入過程中,什麼是block,packet,chunk 1.block 資料塊,當上傳的檔案太大時,就需要分塊,乙個塊預設設定時128m,在客戶端完成切割操作。資料塊block也不是一次性傳送到 datanode中,在客戶端向datanode傳送資料檔案時,是分成乙個乙個的packet的...