1.client通過filesystem.open(filepath)方法,去與namenode進行rpc通訊,返回該檔案的部分或全部的 block列表(也包含該列表各block的分布在datanode位址的列表),也就是返回fsdatainputstream物件;
2.client呼叫fsdatainputstream物件的read()方法,
3.client呼叫fsdatainputstream.close()方法,關閉輸入流
1.client呼叫filesystem.create(filepath)方法,去與namenode進行rpc通訊,check該路徑的檔案 是否存在以及有沒有許可權建立該檔案,假如ok,就建立乙個新檔案,但是並不關聯任何block,返回一 個fsdataoutputstream物件;(假如not ok,就返回錯誤資訊,所以寫**要try-catch)
2.client呼叫fsdataoutputstream物件的write()方法,會將第乙個塊寫入第乙個datanode,第乙個 datanode寫完傳給第二個節點,第二個寫完傳給第三節點,當第三個節點寫完返回乙個ack packet給 第二個節點,第二個返回乙個ack packet給第乙個節點,第乙個節點返回ack packet給 fsdataoutputstream物件,標識第乙個塊寫完,副本數為3;然後剩餘的塊依次這樣寫;
(當然寫操作對於client端也是透明的)
3.當向檔案寫入資料完成後,client呼叫fsdataoutputstream.close()方法,關閉輸出流,flush快取
區的資料報;
4.再呼叫filesystem.complete()方法,告訴namenode節點寫入成功。
hdfs讀寫流程 HDFS 讀寫流程(詳解)
hdfs hadoop distributed file system 是gfs的開源實現。1 優點 因為有多個副本,可以保證資料可靠,容錯性高 計算向資料移動,適用於批處理 適合大資料處理,gb tb pb級資料,百萬以上的檔案,十萬以上的節點 可以構建在廉價機器上,通過多副本提高可靠性 2 缺點...
hdfs讀寫流程 HDFS 檔案讀寫流程
開啟分布式檔案 呼叫分布式檔案 distributedfilesystem.open 方法 定址請求 從 namenode 處得到 datanode 的位址,distributedfilesystem使用 rpc 方式呼叫了namenode,namenode 返回存有該副本的datanode 位址,...
hdfs讀寫流程
1.client發起檔案上傳請求 通過rpc和namenode建立連線,namenode檢查目標檔案是否存在,檢查父目錄是否存在,檢查使用者是否有許可權,返回是否可以上傳 2.client請求第乙個block該傳輸到那些datanode伺服器上 3.namenode根據配置檔案中指定的備份數量及機架...