1.客戶端要寫入資料首先要向namenode發起上傳請求,namenode要檢測目標檔案是否存在,父目錄是否存在,返回是否可以上傳。
2.客戶端請求第乙個block應該往datenode上傳在**
3.namenode根據配置檔案中的備份數量進行分配,返回可用的datanode的位址
4.請求3臺datanode中的一台上傳資料,執行流水線複製
5.6.資料被分割成乙個個packet資料報在pipeline上依次傳輸,在pipeline反方向上,逐個傳送ack(命令正確應答),最終由pipeline中第乙個datanode節點a將pipelineack傳送給client;
7.關閉寫入流
8.儲存資料成功,資料傳到**告訴namenode
1.客戶端先通過呼叫filesystem物件的open來讀取要開啟的檔案
2.client向namenode發起rpc請求,來確認請求檔案block所在的位置
3.namenode根據網路拓撲得出資料所在的位置
4.client 選取排序靠前的 datanode 來讀取 block,如果客戶端本身就是datanode,那麼將從本地直接獲取資料(短路讀取特性);
5.呼叫datainputstream的read方法,讀取資料
6.並行讀取資料,如果失敗重新讀取資料
7.上傳告知namenode後續檔案block所在的位置
8.namenode返回block所在的位置
1.當datanode讀取block的時候,它會計算checksum
2.如果計算後的checksum,與block建立時(第一次上傳是會計算checksum值)值不一樣,說明block已經損壞。
3.client讀取其他datanode上的block.
4.datanode在其檔案建立後週期驗證checksum
資料在寫入之後進行校驗和的計算,datanode週期性進行校驗和計算,將計算結果與第一次的結果進行對比。
若相同表示無資料丟失,若不相同表示資料有丟失,丟失進行資料恢復。
資料讀取之前對資料進行校驗,與第一次的結果進行對比。若相同表示資料沒有丟失,可以讀取。若不相同表示資料
有所丟失。到其他副本讀取。
## 一次寫入,多次讀取
hdfs適合一次寫入,多次讀取的應用場景,支援末尾追加,但是不支援中間追加修改。hdfs 適合用來做大資料分析的底層儲存服務,並不適合用來做.網盤等應用,因為,修改不方便,延遲大,網路開銷大,成本太高。
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根據配置檔案中指定的備份數量及機架...