再理解HDFS的儲存機制,理解HDFS儲存機制

來源:互聯網
上載者:User

再理解HDFS的儲存機制,理解HDFS儲存機制

再理解HDFS的儲存機制

    

1. HDFS開創性地設計出一套檔案儲存體方式,即對檔案分割後分別存放;


2. HDFS將要儲存的大檔案進行分割,分割後存放在既定的儲存塊(Block)中,並通過預先設定的最佳化處理,模式對儲存的資料進行預先處理,從而解決了大檔案儲存與計算的需求;


3. 一個HDFS叢集包括兩大部分,即NameNode與DataNode。一般來說,一個叢集中會有一個NameNode和多個DataNode共同工作;


4. NameNode是叢集的主伺服器,主要是用於對HDFS中所有的檔案及內容資料進行維護,並不斷讀取記錄集群中DataNode主機情況與工作狀態,並通過讀取與寫入鏡像記錄檔的方式進行儲存;


5. DataNode在HDFS叢集中擔任任務具體執行角色,是叢集的工作節點。檔案被分成若干個相同大小的資料區塊,分別儲存在若干個DataNode上,DataNode會定期向叢集內NameNode發送自己的運行狀態與儲存內容,並根據NameNode發送的指令進行工作;


6. NameNode負責接受用戶端發送過來的資訊,然後將檔案儲存體位置資訊發送給提交請求的用戶端,由用戶端直接與DataNode進行聯絡,從而進行部分檔案的運算與操作。


7. Block是HDFS的基本存放裝置單元,預設大小是64M;


8. HDFS還可以對已經儲存的Block進行多副本備份,將每個Block至少複製到3個相互獨立的硬體上,這樣可以快速恢複損壞的資料;


9. 使用者可以使用既定的API介面對HDFS中的檔案進行操作;


10. 當用戶端的讀取操作發生錯誤的時候,用戶端會向NameNode報告錯誤,並請求NameNode排除錯誤的DataNode後後重新根據距離排序,從而獲得一個新的DataNode的讀取路徑。如果所有的DataNode都報告讀取失敗,那麼整個任務就讀取失敗;


11. 對於寫出操作過程中出現的問題,FSDataOutputStream並不會立即關閉。用戶端向NameNode報告錯誤資訊,並直接向提供備份的DataNode中寫入資料。備份DataNode被升級為首選DataNode,並在其餘2個DataNode中備份複製資料。NameNode對錯誤的DataNode進行標記以便後續對其進行處理。



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.