最全 HDFS的讀寫流程

2021-09-29 08:02:18 字數 1459 閱讀 2899

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根據配置檔案中指定的備份數量及機架...