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 位址,...