Hadoop不是萬能的,有些場景適用,有些不適用。
Hadoop設計的目的主要包括下面幾個方面,也就是所謂的適用場景:
1:超大文件
可以是幾百M,幾百T這個級別的文件。
2:流式數據訪問
Hadoop適用于一次寫入,多次讀取的場景,也就是數據復制進去之后,長時間在這些數據上進行分析。
3:商業硬件
也就是說大街上到處都能買到的那種硬件,這樣的硬件故障率較高,所以要有很好的容錯機制。
接下來說說不適用的場景:
1: 低延遲數據訪問
Hadoop設計的目的是大吞吐量,所以并沒有針對低延遲數據訪問做一些優化,如果要求低延遲, 可以看看Hbase。
2: 大量的小文件
由于NameNode把文件的MetaData存儲在內存中,所以大量的小文件會產生大量的MetaData。這樣的話百萬級別的文件數目還是可行的,再多的話就有問題了。
3: 多用戶寫入,任意修改
Hadoop現在還不支持多人寫入,任意修改的功能。也就是說每次寫入都會添加在文件末尾。