Spark:星星之火即將燎原
王家林, Spark亞太研究院院長和***專家,中國目前唯一的移動互聯(lián)網(wǎng)和云計算大數(shù)據(jù)集大成者,在Spark、Hadoop、Android等方面有豐富的源碼、實務(wù)和性能優(yōu)化經(jīng)驗。徹底研究了Spark從0.5.0到0.9.1共13個版本的Spark源碼,并已完成2014年5月31日發(fā)布的Spark1.0源碼研究。
王院長您好,據(jù)我們所知,Spark技術(shù)現(xiàn)在已經(jīng)成為云計算大數(shù)據(jù)方向的熱點技術(shù),在國內(nèi)的應(yīng)用也越來越廣泛,Spark亞太研究院作為Spark技術(shù)在國內(nèi)的專業(yè)研究推廣機(jī)構(gòu),您能否介紹下Spark目前在業(yè)界的一個應(yīng)用情況?
Spark是***一代的大數(shù)據(jù)處理框架,在數(shù)據(jù)統(tǒng)計分析、數(shù)據(jù)挖掘、流處理、圖技術(shù)、機(jī)器學(xué)習(xí)、誤差查詢等方面都有自己的技術(shù),從我們的技術(shù)研究和長期業(yè)界觀察來看,Spark會成為大數(shù)據(jù)時代集大成的計算框架。
Spark技術(shù)在國內(nèi)外的應(yīng)用開始越來越廣泛,它正在逐漸走向成熟,并在這個領(lǐng)域扮演更加重要的角色。國外一些大型互聯(lián)網(wǎng)公司已經(jīng)部署了Spark。例如:一直支持Hadoop的四大商業(yè)機(jī)構(gòu)(Cloudera、MapR、Hortonworks、EMC)已紛紛宣布支持Spark;Mahout前一階段也表示,將不再接受任何形式以MapReduce實現(xiàn)的算法,同時還宣布了接受基于Spark新的算法;而Cloudera的機(jī)器學(xué)習(xí)框架Oryx的執(zhí)行引擎也將由Hadoop的MapReduce替換成Spark;另外,Google也已經(jīng)開始將負(fù)載從MapReduce轉(zhuǎn)移到Pregel和Dremel上;FaceBook也宣布將負(fù)載轉(zhuǎn)移到Presto上……而目前,我們國內(nèi)的淘寶、優(yōu)酷土豆、網(wǎng)易、Baidu、騰訊等企業(yè)也已經(jīng)使用Spark技術(shù)在自己的商業(yè)生產(chǎn)系統(tǒng)中。
隨著2014年5月30日Spark 1.0.0的發(fā)布,Spark已經(jīng)相對穩(wěn)定,可以放心使用。
您能否介紹下Spark如何部署到生產(chǎn)環(huán)境?
對于Spark該如何部署到生產(chǎn)環(huán)境中,Spark是***一代大數(shù)據(jù)計算框架,使用時需要單獨(dú)部署集群,Spark集群部署方式主要有三種:Standalone、Yarn、Mesos。一般而言,在部署的時候都會基于HDFS文件存儲系統(tǒng),所以,如果已經(jīng)有Hadoop平臺,部署Spark就非常容易,只需在平臺上增加Spark功能即可。目前,國內(nèi)企業(yè)淘寶使用的Spark就是基于Hadoop的yarn。當(dāng)然也可以采用standalone和zookeeper的方式進(jìn)行從無到有的構(gòu)建Spark集群,這也是一種常見和理想的選擇,并且這種方式也是官方推薦的。
現(xiàn)在,談到云計算大數(shù)據(jù)話題的時候很多人還是多會提到Hadoop,對Spark了解的人還不是很多,如果企業(yè)有計劃要部署云計算大數(shù)據(jù)的話,那么如何做技術(shù)選型?
我的建議:如果企業(yè)以前沒有云計算大數(shù)據(jù)集群,選擇使用Spark要比Hadoop更為明智,原因是:首先,Hadoop本身的計算模型決定了它的所有工作都要轉(zhuǎn)化成Map、Shuffle和Reduce等核心階段,由于每次計算都要從磁盤讀或者寫數(shù)據(jù),而且整個計算模型需要網(wǎng)絡(luò)傳輸,這就導(dǎo)致越來越難以忍受的延遲性。其次,Hadoop還不能支持交互式應(yīng)用。
而Spark可以輕松應(yīng)對數(shù)據(jù)統(tǒng)計分析、數(shù)據(jù)挖掘、流處理、圖技術(shù)、機(jī)器學(xué)習(xí)、誤差查詢等,且Spark的“One stack rule them all”的特性也導(dǎo)致部署的簡易性,省去多套系統(tǒng)部署的麻煩。
如果技術(shù)選型為Spark,那么,解決數(shù)據(jù)統(tǒng)計分析、實時流計算、數(shù)據(jù)挖掘基本只需要一個團(tuán)隊即可,而如果采用Hadoop則需要不同團(tuán)隊做處理每一項專門的技術(shù),極大的增加人力成本。
另外,對于已經(jīng)有Hadoop集群的公司而言,建議嘗試使用Spark技術(shù),可以從Spark的Shark或者Spark SQL開始,推薦使用Spark的實時流處理和機(jī)器學(xué)習(xí)技術(shù)。
您怎么看待,中型企業(yè)的Spark應(yīng)用?
Spark因其部署的簡易性和“One stack to rule them all”的特點,是大數(shù)據(jù)時代中型企業(yè)處理大數(shù)據(jù)的福音。例如,Yahoo!、淘寶、優(yōu)酷土豆、網(wǎng)易、騰訊等國內(nèi)大型知名企業(yè)已經(jīng)在商業(yè)生產(chǎn)環(huán)境下開始使用Spark技術(shù);Intel、IBM、Linkin、Twwitter等國外大型知名企業(yè)也都在大力支持Spark。隨著這些國內(nèi)外大企業(yè)的使用,Spark技術(shù)的發(fā)展必然勢不可擋,行業(yè)普及很快就會到來,因此對于中型企業(yè)的使用和普及,只是時間問題。
中型公司如果要基于Spark進(jìn)行部署,只需配備約5-20人的團(tuán)隊,即可在Spark上做數(shù)據(jù)分析統(tǒng)計、機(jī)器學(xué)習(xí)、實施流處理計算等工作。
對于電信、金融等行業(yè),使用Spark同樣勢不可擋。在數(shù)據(jù)統(tǒng)計分析方面,Spark比Hadoop快幾十倍,如果是使用內(nèi)存表,Spark更是比Hadoop快100倍以上。同時Spark的實時流處理、機(jī)器學(xué)習(xí)、圖計算也非常高效,可以充分滿足電信、金融行業(yè)數(shù)據(jù)挖掘的需要。
我個人認(rèn)為,作為唯一可以革命Hadoop并正在成為大數(shù)據(jù)計算框架霸主的Spark技術(shù),由于其“One stack to rule them all”的特性(使用一個統(tǒng)一的技術(shù)堆棧解決了大數(shù)據(jù)處理生態(tài)系統(tǒng)中的流處理、圖技術(shù)、機(jī)器學(xué)習(xí)、NoSQL查詢等方面的技術(shù)問題),在2014年10月左右會在中國的需求有爆發(fā)之勢,這種需求包含企業(yè)使用Spark的需求和Spark人才的迫切需求,同時,這種需求將不限已經(jīng)使用Spark的Yahoo!、淘寶、騰訊、網(wǎng)易等國內(nèi)大型企業(yè),還會包含很多中小企業(yè)。
























