06.24 HDFS的優缺點以及如何存儲數據

HDFS是Hadoop的分佈式文件系統,是一個高度容錯性的系統,適合運行在通用硬件上,適合部署在廉價的機器上。HDFS能提供高吞吐量的數據訪問,非常適合大規模數據集上的應用。今天成都加米穀大數據培訓中心就來說說HDFS。

HDFS的優缺點以及如何存儲數據

HDFS 具有以下優點

1、高容錯性數據自動保存多個副本。它通過增加副本的形式,提高容錯性。某一個副本丟失以後,它可以自動恢復,這是由 HDFS 內部機制實現的。

2、適合批處理,是通過移動計算而不是移動數據。它會把數據位置暴露給計算框架。

3、適合大數據處理,處理數據達到 GB、TB、甚至PB級別的數據。能夠處理百萬規模以上的文件數量,數量相當之大。能夠處理10K節點的規模。

4、流式文件訪問一次寫入,多次讀取。文件一旦寫入不能修改,只能追加。它能保證數據的一致性。

5、可構建在廉價機器上它通過多副本機制,提高可靠性。它提供了容錯和恢復機制。比如某一個副本丟失,可以通過其它副本來恢復。

當然 HDFS 也有它的劣勢,並不適合所有的場合

1、低延時數據訪問比如毫秒級的來存儲數據,這是不行的,它做不到。它適合高吞吐率的場景,就是在某一時間內寫入大量的數據。但是它在低延時的情況下是不行的,比如毫秒級以內讀取數據,這樣它是很難做到的。

2、小文件存儲存儲大量小文件(這裡的小文件是指小於HDFS系統的Block大小的文件(默認64M))的話,它會佔用 NameNode大量的內存來存儲文件、目錄和塊信息。這樣是不可取的,因為NameNode的內存總是有限的。小文件存儲的尋道時間會超過讀取時間,它違反了HDFS的設計目標。

3、併發寫入、文件隨機修改一個文件只能有一個寫,不允許多個線程同時寫。僅支持數據 append(追加),不支持文件的隨機修改。

HDFS的優缺點以及如何存儲數據

HDFS 如何儲存數據

HDFS 採用Master/Slave的架構來存儲數據,這種架構主要由四個部分組成,分別為HDFS Client、NameNode、DataNode和Secondary NameNode。下面我們分別介紹這四個組成部分。

1、Client:就是客戶端。文件切分。文件上傳 HDFS 的時候,Client 將文件切分成 一個一個的Block,然後進行存儲。與 NameNode 交互,獲取文件的位置信息。與 DataNode 交互,讀取或者寫入數據。Client 提供一些命令來管理 HDFS,比如啟動或者關閉HDFS。Client 可以通過一些命令來訪問 HDFS。

2、NameNode:就是 master,它是一個主管、管理者。管理 HDFS 的名稱空間管理數據塊(Block)映射信息配置副本策略處理客戶端讀寫請求。

3、DataNode:就是Slave。NameNode 下達命令,DataNode 執行實際的操作。存儲實際的數據塊。執行數據塊的讀/寫操作。

4、Secondary NameNode:並非 NameNode 的熱備。當NameNode 掛掉的時候,它並不能馬上替換 NameNode 並提供服務。輔助 NameNode,分擔其工作量。定期合併 fsimage和fsedits,並推送給NameNode。在緊急情況下,可輔助恢復 NameNode。


分享到:


相關文章: