大數(shù)據(jù)需要學(xué)習(xí)什么框架?
現(xiàn)行的主要有以下四個(gè)比較流行的框架。
Hadoop
Hadoop無(wú)疑是大數(shù)據(jù)領(lǐng)域的第一站,這個(gè)由Apache基金會(huì)開發(fā)的分布式基礎(chǔ)架構(gòu),具有廣闊的生態(tài)圈。Hadoop提出的Map和Reduce的計(jì)算模式簡(jiǎn)潔而優(yōu)雅,它實(shí)現(xiàn)了大量算法和組件。但是,由于Hadoop的計(jì)算任務(wù)需要在集群的多個(gè)節(jié)點(diǎn)上多次讀寫,因此在速度上會(huì)稍顯劣勢(shì),但是Hadoop的吞吐量也同樣是其他框架所不能匹敵的。
Storm
Storm是Twitter開源的大數(shù)據(jù)框架,Hadoop的批處理模式不同,Storm采用的是流計(jì)算框架。但Storm與Hadoop相似之處是也提出了Spout和Bolt兩個(gè)計(jì)算角色。舉個(gè)通俗的例子來(lái)說(shuō)明Storm和Hadoop的不同之處,Hadoop類似水桶,而Storm類似水龍頭,想要獲取水,Hadoop是一桶一桶的去扛回來(lái),而Storm只需要打開水龍頭就行了。Storm流計(jì)算框架使用的是內(nèi)存,延遲上具有優(yōu)勢(shì),但是不會(huì)持久化數(shù)據(jù)。Storm對(duì)Java、Ruby、Python等語(yǔ)言都有很好的支持。
Spark
Spark大數(shù)據(jù)框架作為Hadoop的升級(jí)版是一種混合式的計(jì)算框架,Spark自帶實(shí)時(shí)流處理工具;Spark也可以與Hadoop集成代替MapReduce;甚至Spark還可以單獨(dú)拿出來(lái)借助HDFS等分布式存儲(chǔ)系統(tǒng)部署集群。Spark的運(yùn)算速度與Storm相似,Spark的速度大約為Hadoop的一百倍,而Spark的成本要比Hadoop低。Spark的火爆主要在于提出了用統(tǒng)一的引擎支持批處理,流處理,交互式查詢和機(jī)器學(xué)習(xí)等常用場(chǎng)景。Spark雖然號(hào)稱是可以處理流,但是主要的思路是提供很小的batch,由于是內(nèi)存處理,如果處理的足夠快就能達(dá)到低延時(shí)效果。本質(zhì)上是基于內(nèi)存的批處理。
Flink
Flink大數(shù)據(jù)框架也是一種混合式的計(jì)算框架,F(xiàn)ink與Spark相反的地方在于Fink重點(diǎn)在于處理流式數(shù)據(jù),所有的操作Flink都是基于流來(lái)實(shí)現(xiàn)的。