Twitter將采用Spark分析大數(shù)據(jù)
Spark是一個(gè)基于內(nèi)存計(jì)算的開(kāi)源的集群計(jì)算系統(tǒng)(點(diǎn)此下載),目的是讓數(shù)據(jù)分析更加快速。Spark非常小巧玲瓏,由加州伯克利大學(xué)AMP實(shí)驗(yàn)室的Matei為主的小團(tuán)隊(duì)所開(kāi)發(fā)。使用的語(yǔ)言是Scala,項(xiàng)目的core部分的代碼只有63個(gè)Scala文件,非常短小精悍。與Hadoop不同的是,Spark和Scala緊密集成,Scala像管理本地collective對(duì)象那樣管理分布式數(shù)據(jù)集。
Edwin認(rèn)為:”MapReduce或hadoop任務(wù)都是批處理,所以啟動(dòng)一項(xiàng)Hadoop任務(wù),或等待結(jié)果返回都需要等待很長(zhǎng)時(shí)間,這一點(diǎn)很難改變,因?yàn)镠adoop天生就是一個(gè)批處理系統(tǒng),你無(wú)法在上面運(yùn)行互動(dòng)分析。不過(guò)Hadoop對(duì)于分析海量數(shù)據(jù)還是很有用的。”
Spark開(kāi)發(fā)之初是為了兩個(gè)能被內(nèi)存計(jì)算提速的應(yīng)用:互動(dòng)算法(常見(jiàn)于機(jī)器學(xué)習(xí)中,例如Google的PR)和互動(dòng)數(shù)據(jù)挖掘(Hive on Spark)。在這兩個(gè)應(yīng)用中,Spark的速度是Hadoop MapReduce的30倍!這是因?yàn)檫\(yùn)行Spark系統(tǒng)時(shí),服務(wù)器可以把中間數(shù)據(jù)存儲(chǔ)在RAM內(nèi)存中,而無(wú)需經(jīng)常從頭加載。這意味著分析結(jié)果的返回速度大大加快,足以勝任互動(dòng)分析工作。(見(jiàn)下圖)
在Spark的出生地——加州伯克利大學(xué)的AMP實(shí)驗(yàn)室,研究人員用Spark分析垃圾郵件過(guò)濾、自然語(yǔ)言處理以及交通路況預(yù)測(cè)等任務(wù)。Spark還被用來(lái)給Conviva、Klout和Quantifind等公司的數(shù)據(jù)分析服務(wù)提速。無(wú)疑,Spark處理分布式數(shù)據(jù)集的框架不僅是有效的,而且是高效的(通過(guò)簡(jiǎn)潔的Scala腳本)。Spark和Scala目前都還尚處于開(kāi)發(fā)中。盡管如此,隨著加入更多的關(guān)鍵互聯(lián)網(wǎng)特性,它越來(lái)越從有趣的開(kāi)源軟件過(guò)渡為基礎(chǔ)的web技術(shù)。