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