再理解HDFS的存儲機制


再理解HDFS的存儲機制

    

1. HDFS開創性地設計出一套文件存儲方式。即對文件切割后分別存放;


2. HDFS將要存儲的大文件進行切割,切割后存放在既定的存儲塊(Block)中,並通過預先設定的優化處理,模式對存儲的數據進行預處理,從而攻克了大文件儲存與計算的需求。


3. 一個HDFS集群包含兩大部分。即NameNode與DataNode。

一般來說,一個集群中會有一個NameNode和多個DataNode共同工作;


4. NameNode是集群的主server,主要是用於對HDFS中全部的文件及內容數據進行維護,並不斷讀取記錄集群中DataNode主機情況與工作狀態,並通過讀取與寫入鏡像日志文件的方式進行存儲。


5. DataNode在HDFS集群中擔任任務詳細執行角色,是集群的工作節點。文件被分成若干個同樣大小的數據塊,分別存儲在若干個DataNode上。DataNode會定期向集群內NameNode發送自己的執行狀態與存儲內容,並依據NameNode發送的指令進行工作;


6. NameNode負責接受client發送過來的信息,然后將文件存儲位置信息發送給提交請求的client。由client直接與DataNode進行聯系,從而進行部分文件的運算與操作。


7. Block是HDFS的基本存儲單元,默認大小是64M。


8. HDFS還能夠對已經存儲的Block進行多副本備份,將每一個Block至少拷貝到3個相互獨立的硬件上,這樣能夠高速恢復損壞的數據;


9. 用戶能夠使用既定的API接口對HDFS中的文件進行操作;


10. 當client的讀取操作錯誤發生的時候。client會向NameNode報告錯誤,並請求NameNode排除錯誤的DataNode后后又一次依據距離排序。從而獲得一個新的DataNode的讀取路徑。假設全部的DataNode都報告讀取失敗。那么整個任務就讀取失敗;


11. 對於寫出操作過程中出現的問題。FSDataOutputStream並不會馬上關閉。client向NameNode報告錯誤信息。並直接向提供備份的DataNode中寫入數據。

備份DataNode被升級為首選DataNode,並在其余2個DataNode中備份復制數據。

NameNode對錯誤的DataNode進行標記以便興許對其進行處理。





免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM