詳細流程:
建立資料流管道:
向資料流管道pipeline中寫當前塊的資料:
packet寫滿後,先被寫入乙個dataqueue佇列中
乙個packet資料取完後,後被放入到ackqueue中等待pipeline關於該packet的ack的反饋
若packet的ack是success成功的,則從ackqueue中,將packet刪除;否則,將packet從ackqueue中取出,重新放入dataqueue,重新傳送
檔案最後乙個block塊資料寫完後,會再傳送乙個空的packet,表示當前block寫完了,然後關閉pipeline
clientprotocol.complete()通知namenode當前檔案所有塊寫完了
容錯:在寫的過程中,pipeline中的datanode出現故障(如網路不通),輸出流如何恢復
2.讀流程
詳細流程:
容錯:情況二:client讀取block,發現block資料有問題
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根據配置檔案中指定的備份數量及機架...