HDFS的設(shè)計
我們從以下角度分析:
-
超大文件
HDFS可以并適合存儲
超大文件
俊抵。這里只具有幾百MB、幾百GB、甚至幾百TB大小的文件锌订。目前已經(jīng)有存儲PB級數(shù)據(jù)的Hadoop集群了眨业。 -
流式數(shù)據(jù)訪問
HDFS的設(shè)計理念:一次寫入急膀、多次讀取是最高效的訪問方式。數(shù)據(jù)集寫入后龄捡,每次分析都將涉及該數(shù)據(jù)集的大部分甚至全部卓嫂,因此在HDFS的設(shè)計中讀取整個數(shù)據(jù)集的時間延遲比讀取第一條記錄的時間延遲更重要。
-
商用硬件
HDFS并不需要運行在昂貴且可靠的硬件上聘殖。它是設(shè)計并運行在普通商用硬件的集群上的晨雳。同樣也帶來了問題,至少對于龐大的集群來說奸腺,節(jié)點故障的幾率還是比較高的餐禁。但是HDFS的高可用機制和容錯機制,可以讓集群繼續(xù)運行突照,并且不讓用戶察覺到明顯的中斷帮非。
-
低時間延遲的數(shù)據(jù)訪問
對低時間延遲要求較高的應(yīng)用,不適合在HDFS上運行绷旗。HDFS是為高數(shù)據(jù)吞吐量應(yīng)用優(yōu)化的喜鼓。為了實現(xiàn)這個目的副砍,提高時間延遲也是代價的一部分。對于低延遲的應(yīng)用HBase應(yīng)該是不錯的選擇庄岖。
-
大量小文件
由于
namenode
將文件系統(tǒng)的元數(shù)據(jù)存儲在內(nèi)存中豁翎,因此文件系統(tǒng)所能存儲的文件總數(shù)受限于namenode
的內(nèi)存大小。如果每個文件的元數(shù)據(jù)大小為150字節(jié)隅忿,那么存儲一百萬個文件心剥,至少要300MB的內(nèi)存”惩可想而知优烧,如果有更多文件將會怎樣。 -
多用戶寫入链峭,任意修改文件
HDFS的文件僅支持單個寫入者畦娄,寫操作只能是以在文件末尾
追加
的方式。不支持隨機讀寫弊仪。
總結(jié)
從以上角度我們大概就能清楚的認識到HDFS的適用場景是怎樣的熙卡,我們在設(shè)計或部署HDFS集群時應(yīng)該考慮哪些問題。比如:并不是僅僅盲目的增加機器數(shù)據(jù)量励饵,就能完美擴容的驳癌。