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