1. 程式人生 > >給系統架構師們的啟示:分散式檔案系統HDFS設計9大特點!

給系統架構師們的啟示:分散式檔案系統HDFS設計9大特點!

研究一下HDFS的幾個設計特點,可以給系統架構師們進行分散式計算框架設計提供一些啟示:


1)Block的配置:


預設不配置。一個Block會有三份備份,一份放在NameNode指定的DataNode,另一份放在與指定DataNode非同一Rack上的DataNode,最後一份放在與指定DataNode同一Rack上的DataNode上。備份無非就是為了資料安全,考慮同一Rack的失敗情況以及不同Rack之間資料拷貝效能問題就採用這種配置方式。



2)資料管道性寫入:


當客戶端要寫入檔案到DataNode上,首先客戶端讀取一個Block然後寫到第一個DataNode上,然後由第一個DataNode傳遞到備份的DataNode上,一直到所有需要寫入這個Block的NataNode都成功寫入,客戶端才會繼續開始寫下一個Block。



3)資料校驗:


採用CRC32 作資料校驗。在檔案Block 寫入的時候除了寫入資料還會寫入校驗資訊,在讀取的時候需要校驗後再讀入。


4)健康監測:


心跳檢測DataNode 的健康狀況,如果發現問題就採取資料備份的方式來保證資料的安全性。


5)資料複製


如果DataNode 失敗、需要平衡DataNode 的儲存利用率和需要平衡DataNode 資料互動壓力等情況。使用HDFS 的balancer(平衡器)命令,可以配置一個Threshold(閾值)來平衡每一個DataNode 磁碟利用率。


例如,設定了閾值為10%,那麼執行balance(平衡器)命令的時候,首先統計所有DataNode的磁碟利用率的均值,然後判斷如果某一個DataNode 的磁碟利用率超過這個均值閾值以上,那麼將會把這個DataNode 的block 轉移到磁碟利用率低的DataNode,這對於新節點的加入來說十分有用。



6)NameNod 是單點:


如果失敗的話,任務處理資訊將會紀錄在本地檔案系統和遠端的檔案系統中。


7)安全模式:


在分散式檔案系統啟動的時候,開始的時候會有安全模式,當分散式檔案系統處於安全模式的情況下,檔案系統中的內容不允許修改也不允許刪除,直到安全模式結束。


安全模式主要是為了系統啟動的時候檢查各個DataNode 上資料塊的有效性,同時根據策略必要的複製或者刪除部分資料塊。


執行期通過命令也可以進入安全模式。在實踐過程中,系統啟動的時候去修改和刪除檔案也會有安全模式不允許修改的出錯提示,只需要等待一會兒即可。


8)高效:


分散式檔案系統的高效資料互動實現以及MapReduce 結合LocalData(本地資料)處理的模式,為高效處理海量的資訊作了基礎準備。


9)CPU 佔用:



分散式計算程式的執行優先順序非常低,一般不會對正常使用造成影響,但有部分大型軟體中部分元件也可能運行於同等低優先順序,這時情況下,可以手動暫停計算或是設定為不在使用計算機的時候進行計算。