HDFS寫檔案流程

2021-08-29 02:17:09 字數 755 閱讀 2267

hdfs寫入檔案流程圖如下:

1 客戶端呼叫distributed filesystem.create(path)方法,與namenode進行rpc通訊,引數為路徑path。檢查傳入的路徑是否存在,以及當前使用者是否有寫入許可權。

假如都滿足,就建立乙個新的檔案,但是此時並不關聯任何的block。並且返回fsdataoutputstream物件。

如果有乙個不滿足,返回錯誤資訊。

注意:寫檔案呼叫物件是fsdataoutputstream,讀檔案是呼叫fsdatainputstream

2 client呼叫fsdataoutputstream的write方法,將第乙個塊寫給dn1,當dn1寫完後,dn1複製給dn2,當dn2寫完後,dn2複製給dn3。

當dn3寫完後,dn3返回乙個ack packet確認包給dn2

當dn2 接收到ack後,傳送乙個ack packet給dn1

當dn1接收到ack後,傳送乙個ack packet給fsdataoutputstream物件,標識第乙個塊三個副本全部寫完。

其他的資料塊寫入流程一樣。

3 當檔案全部寫完,client呼叫fsdataoutputstream物件的close方法,關閉輸出流,flush快取區的資料報

4 呼叫filesystem.complete方法,告訴namenode,檔案寫入完成。

HDFS 寫檔案流程

hdfs寫檔案流程,需要先看懂下面2張圖 如圖 有2個機架伺服器群,通過交換機進行互動,其中同乙個群的不同機架都通過群內的伺服器進行互動。例子中設定的3個副本放置在2個機架服務群上,其中副本1,2絕對不在同乙個機架群。這是為了防止有人把副本設定為2,然後a1,a2都分配到乙個機架服務群。假設乙個資料...

HDFS讀取流程和寫流程

讀 1.客戶端或者使用者通過呼叫 filesystem 物件的 open 方法開啟需要讀取的檔案,這對 hdfs 來說是常見乙個分布式檔案系統的乙個讀取例項。2.filesystem 通過遠端協議呼叫 namenode 確定檔案的前幾個 block 的位置。對於每乙個 block,namenode ...

hdfs讀寫流程 HDFS 檔案讀寫流程

開啟分布式檔案 呼叫分布式檔案 distributedfilesystem.open 方法 定址請求 從 namenode 處得到 datanode 的位址,distributedfilesystem使用 rpc 方式呼叫了namenode,namenode 返回存有該副本的datanode 位址,...