Hadoop的特點與缺點


1、支持超大文件,一般來說,HDFS 存儲的文件可以支持 TB 和 PB 級別的數據。

2、檢測和快速應對硬件故障:
在集羣環境中,硬件故障是常見性問題。因爲有上千臺服務器連在一起,故障率高,因此故障檢測和自動恢復 hdfs 文件系統的一個設計目標。假設某一個 datanode 節點掛掉之後,因爲數據備份,還可以從其他節點裏找到。namenode 通過心跳機制來檢測 datanode 是否還存在
3、流式數據訪問:
HDFS 的數據處理規模比較大,應用一次需要大量的數據,同時這些應用一般都是批量處理,而不是用戶交互式處理,應用程序能以流的形式訪問數據庫。主要的是數據的吞吐量,而不是訪問速度。訪問速度最終是要受制於網絡和磁盤的速度,機器節點再多,也不能突破物理的侷限,HDFS 不適合於低延遲的數據訪問,HDFS 的是高吞吐量。
4、簡化的一致性模型:
對於外部使用用戶,不需要了解 hadoop 底層細節,比如文件的切塊,文件的存儲,節點的管理。
一個文件存儲在 HDFS 上後,適合一次寫入,多次寫出的場景 once-write-read-many。因爲存儲在 HDFS 上的文件都是超大文件,當上傳完這個文件到 hadoop 集羣后,會進行文件切塊,分發,複製等操作。如果文件被修改,會導致重新出發這個過程,而這個過程耗時是最長的。所以在 hadoop 裏,不允許對上傳到 HDFS 上文件做修改 (隨機寫),在 2.0 版本時可以在後面追加數據。但不建議。
5、高容錯性:
數據自動保存多個副本,副本丟失後自動恢復。可構建在廉價機上,實現線性 (橫向) 擴展,當集羣增加新節點之後,namenode 也可以感知,將數據分發和備份到相應的節點上。
6、商用硬件
Hadoop 並不需要運行在昂貴且高可靠的硬件上,它是設計運行在商用硬件的集羣上的,因此至少對於龐大的集羣來說,節點故障的機率還是非常高的。HDFS 遇到上述故障時,被設計成能夠繼續運行且不讓用戶察覺到明顯的中斷。


HDFS 缺點:
1、不能做到低延遲
由於 hadoop 針對高數據吞吐量做了優化,犧牲了獲取數據的延遲,所以對於低延遲數據訪問,不適合 hadoop,對於低延遲的訪問需求,HBase 是更好的選擇,
2、不適合大量的小文件存儲
由於 namenode 將文件系統的元數據存儲在內存中,因此該文件系統所能存儲的文件總數受限於 namenode 的內存容量,根據經驗,每個文件、目錄和數據塊的存儲信息大約佔 150 字節。因此,如果大量的小文件存儲,每個小文件會佔一個數據塊,會使用大量的內存,有可能超過當前硬件的能力。
3、不適合多用戶寫入文件,修改文件
Hadoop2.0 雖然支持文件的追加功能,但是還是不建議對 HDFS 上的 文件進行修改,因爲效率低。
對於上傳到 HDFS 上的文件,不支持修改文件,HDFS 適合一次寫入,多次讀取的場景。
HDFS 不支持多用戶同時執行寫操作,即同一時間,只能有一個用戶執行寫操作。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章