Hadoop的HDFS的學習筆記

2021-10-09 14:43:04 字數 1520 閱讀 2605

1,啟動服務端的nn,dn程序,提供乙個分布式檔案系統client;

2,由客戶端向nn發起請求,請求上傳乙個檔案,nn對請求進行合法檢查(許可權,路徑是否合法,路徑是否存在);

3,如果合法,nn響應客戶端允許上傳;

4,客戶端根據自己設定的blk大小,切分blk,讀取第乙個blk的內容,請求nn分配dn的位址列表;

5,nn參考客戶端上傳的檔案的副本數,根據機架感知,返回對應的dn列表(按照距離從近到遠返回dn位址列表);

6,客戶端請求距離最近的dn節點,再由dn列表中每個dn節點都請求距離最近的dn節點,建立資料傳輸通道(pipeline);

7,通道建立完成,客戶端第乙個blk的資料,封裝為乙個乙個的packet,傳送到通道中的下乙個節點;

通道中的每乙個節點在收到packet後,進行校驗,合法後,放入到bytebuffer中,最終落盤儲存,將packet傳送到下乙個dn節點;

8,第乙個blk傳輸完成後,dn向nn上報完成塊傳輸的資訊,只要有乙個dn節點上報資訊,nn就認為這個blk已經傳輸完成,通道關閉,開始下乙個blk的傳輸;

9,下乙個blk依次按照4-8的流程進行傳輸;

10,所有的blk傳輸完成後,nn響應客戶端傳輸完成,客戶端關閉輸出流。

第一階段:namenode啟動

(1)第一次啟動namenode格式化後,建立fsimage和edits檔案。如果不是第一次啟動,直接載入編輯日誌和映象檔案到記憶體。

(2)客戶端對元資料進行增刪改的請求。

(3)namenode記錄操作日誌,更新滾動日誌。

(4)namenode在記憶體中對資料進行增刪改。

第二階段:secondary namenode工作

(1)secondary namenode詢問namenode是否需要checkpoint。直接帶回namenode是否檢查結果。

(2)secondary namenode請求執行checkpoint。

(3)namenode滾動正在寫的edits日誌。

(4)將滾動前的編輯日誌和映象檔案拷貝到secondary namenode。

(5)secondary namenode載入編輯日誌和映象檔案到記憶體,並合併。

(6)生成新的映象檔案fsimage.chkpoint。

(7)拷貝fsimage.chkpoint到namenode。

(8)namenode將fsimage.chkpoint重新命名成fsimage。

hadoop學習筆記(HDFS)

hdfs的設計基礎與目標 1 硬體錯誤是常態,因此需要冗餘。2 為大資料而生,流式讀寫,批量讀取而非隨機讀寫。擅長資料分析而不是事務處理。3 大規模資料集。4 一次寫多次讀邏輯設計,即一旦寫入,只能讀,不能修改。5 程式才用 資料就近 原則分配節點執行。hdfs的可靠性 冗餘副本策略 機架策略 心跳...

hadoop學習 HDFS詳細學習

1 hdfs概念 hadoop distributed file system,簡稱hdfs,是乙個分布式檔案系統。hdfs是高容錯性的,可以部署在低成本的硬體之上,hdfs提供高吞吐量地對應用程式資料訪問,它適合大資料集的應用程式。2 hdfs 設計目標 hdfs不適合做什麼 儲存小檔案 大量隨機...

Hadoop學習(二) HDFS介紹

隨著資料量越來越大,在乙個作業系統存不下所有的資料,那麼就分配到更多的作業系統管理的磁碟中,但是不方便管理和維護,迫切需要一種系統來管理多台機器上的檔案,這就是分布式檔案管理系統。hdfs只是分布式檔案管理系統中的一種。hadoop分布式檔案系統,主要用來解決海量資料的儲存問題 它是乙個檔案系統,用...