3 回答

TA貢獻1966條經(jīng)驗 獲得超4個贊
一、 Hadoop 特點
1、支持超大文件
一般來說,HDFS存儲的文件可以支持TB和PB級別的數(shù)據(jù)。
2、檢測和快速應(yīng)對硬件故障
在集群環(huán)境中,硬件故障是常見性問題。因為有上千臺服務(wù)器連在一起,故障率高,因此故障檢測和自動恢復(fù)hdfs文件系統(tǒng)的一個設(shè)計目標。假設(shè)某一個datanode節(jié)點掛掉之后,因為數(shù)據(jù)備份,還可以從其他節(jié)點里找到。namenode通過心跳機制來檢測datanode是否還存在
3、流式數(shù)據(jù)訪問
HDFS的數(shù)據(jù)處理規(guī)模比較大,應(yīng)用一次需要大量的數(shù)據(jù),同時這些應(yīng)用一般都是批量處理,而不是用戶交互式處理,應(yīng)用程序能以流的形式訪問數(shù)據(jù)庫。主要的是數(shù)據(jù)的吞吐量,而不是訪問速度。訪問速度最終是要受制于網(wǎng)絡(luò)和磁盤的速度,機器節(jié)點再多,也不能突破物理的局限,HDFS不適合于低延遲的數(shù)據(jù)訪問,HDFS的是高吞吐量。
4、簡化的一致性模型
對于外部使用用戶,不需要了解hadoop底層細節(jié),比如文件的切塊,文件的存儲,節(jié)點的管理。
一個文件存儲在HDFS上后,適合一次寫入,多次寫出的場景once-write-read-many。因為存儲在HDFS上的文件都是超大文件,當上傳完這個文件到hadoop集群后,會進行文件切塊,分發(fā),復(fù)制等操作。如果文件被修改,會導(dǎo)致重新出發(fā)這個過程,而這個過程耗時是最長的。所以在hadoop里,不允許對上傳到HDFS上文件做修改(隨機寫),在2.0版本時可以在后面追加數(shù)據(jù)。但不建議。
5、高容錯性
數(shù)據(jù)自動保存多個副本,副本丟失后自動恢復(fù)??蓸?gòu)建在廉價機上,實現(xiàn)線性(橫向)擴展,當集群增加新節(jié)點之后,namenode也可以感知,將數(shù)據(jù)分發(fā)和備份到相應(yīng)的節(jié)點上。
6、商用硬件
Hadoop并不需要運行在昂貴且高可靠的硬件上,它是設(shè)計運行在商用硬件的集群上的,因此至少對于龐大的集群來說,節(jié)點故障的幾率還是非常高的。HDFS遇到上述故障時,被設(shè)計成能夠繼續(xù)運行且不讓用戶察覺到明顯的中斷。
二、HDFS缺點
1、不能做到低延遲
由于hadoop針對高數(shù)據(jù)吞吐量做了優(yōu)化,犧牲了獲取數(shù)據(jù)的延遲,所以對于低延遲數(shù)據(jù)訪問,不適合hadoop,對于低延遲的訪問需求,HBase是更好的選擇,
2、不適合大量的小文件存儲
由于namenode將文件系統(tǒng)的元數(shù)據(jù)存儲在內(nèi)存中,因此該文件系統(tǒng)所能存儲的文件總數(shù)受限于namenode的內(nèi)存容量,根據(jù)經(jīng)驗,每個文件、目錄和數(shù)據(jù)塊的存儲信息大約占150字節(jié)。因此,如果大量的小文件存儲,每個小文件會占一個數(shù)據(jù)塊,會使用大量的內(nèi)存,有可能超過當前硬件的能力。
3、不適合多用戶寫入文件,修改文件
Hadoop2.0雖然支持文件的追加功能,但是還是不建議對HDFS上的 文件進行修改,因為效率低。
對于上傳到HDFS上的文件,不支持修改文件,HDFS適合一次寫入,多次讀取的場景。
HDFS不支持多用戶同時執(zhí)行寫操作,即同一時間,只能有一個用戶執(zhí)行寫操作。
添加回答
舉報