Spark架構(gòu)在大數(shù)據(jù)環(huán)境的核心位置找到用武之地
Webtrends公司的IT團(tuán)隊(duì)在Apache Spark這款處理引擎還是一項(xiàng)學(xué)術(shù)研究項(xiàng)目的時(shí)候就已經(jīng)開(kāi)始使用它并沿用至今。但當(dāng)Webtrends在2014年年中部署了一套基于Hadoop的大數(shù)據(jù)環(huán)境來(lái)對(duì)分析應(yīng)用程序進(jìn)行增強(qiáng)的時(shí)候,Spark架構(gòu)便成了一個(gè)有限的角色:有關(guān)數(shù)據(jù)索引的聚合細(xì)節(jié)有助于用戶發(fā)現(xiàn)相關(guān)信息。現(xiàn)在,一切都已改變,而且該公司正在花大力氣學(xué)習(xí)Spark并作為其大數(shù)據(jù)平臺(tái)升級(jí)版本的一部分。
Webtrends從網(wǎng)站,移動(dòng)設(shè)備和物聯(lián)網(wǎng)收集用戶活動(dòng)數(shù)據(jù)提供給企業(yè)客戶用于分析,它將Spark置于一款名為Infinity Analytics應(yīng)用程序的核心位置,該應(yīng)用在2016年初開(kāi)始了基本版測(cè)試,而現(xiàn)在正在向客戶進(jìn)行營(yíng)銷(xiāo)。該公司建立了一個(gè)擁有160個(gè)節(jié)點(diǎn)的Spark系統(tǒng)來(lái)支持在線營(yíng)銷(xiāo)活動(dòng)的實(shí)時(shí)優(yōu)化,而這是以進(jìn)入Hadoop集群的活動(dòng)數(shù)據(jù)流的快速分析為基礎(chǔ)的。“我們基本上已經(jīng)解除了Spark對(duì)數(shù)據(jù)湖的束縛來(lái)做所有的計(jì)算,”CTO Peter Crossley說(shuō)。
越來(lái)越多的企業(yè)同樣正將注意力轉(zhuǎn)向Spark以幫助對(duì)大數(shù)據(jù)處理工作進(jìn)行加速。獨(dú)立的統(tǒng)計(jì)數(shù)據(jù)很難得到處理引擎的采用,在2014年五月之后,這才以1.0的版本通過(guò)Apache Software Foundation變得可用。但是,Databricks公司是一家初創(chuàng)供應(yīng)商,它是Spark開(kāi)發(fā)背后的驅(qū)動(dòng)力,公司負(fù)責(zé)人表示有超過(guò)500家企業(yè)已經(jīng)在應(yīng)用程序的生產(chǎn)中部署了該項(xiàng)技術(shù)。而且Spark顯然已經(jīng)與Hadoop一并躋身大數(shù)據(jù)聚光燈之下,它和Hadoop經(jīng)常但并不總是進(jìn)行配對(duì)。
Spark的最開(kāi)始的名片是它能比MapReduce更快地運(yùn)行批處理應(yīng)用程序,而其編程環(huán)境和執(zhí)行引擎是嵌入在Hadoop原始版本中的。Spark的支持者宣稱(chēng)其核心內(nèi)存引擎在處理數(shù)據(jù)上可以比MapReduce快100倍。批處理任務(wù)仍是Spark的一個(gè)很大的應(yīng)用方面,分析大量數(shù)據(jù)和對(duì)數(shù)據(jù)進(jìn)行提取,轉(zhuǎn)換和加載(ETL)例程的前期準(zhǔn)備也同樣如此。
但是,對(duì)于Spark架構(gòu)來(lái)說(shuō)遠(yuǎn)不止如此。該技術(shù)還能通過(guò)一組附加組件來(lái)處理更多的互動(dòng)和實(shí)時(shí)工作負(fù)載,這些附加組件包括機(jī)器學(xué)習(xí)庫(kù),流處理模塊和圖形處理接口。除了其處理速度和應(yīng)用程序多功能性,Spark可以讓用戶避免在MapReduce中編程。相反,他們可以使用更高級(jí)別且更為熟悉的語(yǔ)言,如Java,Python,Scala,SQL和R。
Spark擁有足夠的部署選項(xiàng)
Hadoop根本不需要成為以下愿景的一部分:Spark能夠針對(duì)數(shù)據(jù)存儲(chǔ)以獨(dú)立模式運(yùn)行,而非Hadoop分布式文件系統(tǒng)——例如,NoSQL數(shù)據(jù)庫(kù)和Amazon Simple Storage Service。同樣的,并不只是Databricks在將該處理引擎推向前進(jìn)。IBM,Microsoft,Amazon Web Services以及Hadoop的分銷(xiāo)商Cloudera, Hortonworks和 MapR Technologies還有其他大數(shù)據(jù)廠商同樣對(duì)Spark提供并支持。
另一方面,一些早期使用者表示,Spark是一項(xiàng)有待進(jìn)一步成熟的新興技術(shù)。例如,他們引用了內(nèi)存管理問(wèn)題,與MapReduce相比缺失的功能,不完整的數(shù)據(jù)加密支持,以及缺乏監(jiān)控和管理Spark系統(tǒng)的工具。要填補(bǔ)這些空白,對(duì)于Spark架構(gòu)的開(kāi)發(fā)步伐已然是迅速而劇烈的了:在2015年Apache開(kāi)源軟件有9個(gè)發(fā)布版,而到今年為止已經(jīng)發(fā)布了5個(gè)版本,包括在7月份可用的Spark2.0版。
但是成熟度問(wèn)題并不會(huì)對(duì)諸如Webtrends之類(lèi)的用戶造成困擾。從Crossley的立場(chǎng)來(lái)看,Spark在生產(chǎn)上顯然是已經(jīng)就緒了的。“它是一項(xiàng)穩(wěn)定的技術(shù),對(duì)于部署Spark我絲毫沒(méi)有猶豫,”他說(shuō)。
MapReduce不會(huì)為了Webtrends正在關(guān)注的Infinity Analytic應(yīng)用程序高速性能而進(jìn)行削減,但Crossley將Spark和它的Spark Streaming模塊描述為一個(gè)完美的組合。“我們的想法是數(shù)據(jù)通過(guò)我們的系統(tǒng)進(jìn)行無(wú)縫遷移,而且這是實(shí)時(shí)發(fā)生的。要以一種快速的方法來(lái)查看這些數(shù)據(jù)并進(jìn)行審計(jì)的確需要擁有像Spark這樣的設(shè)施。”
每天Webtrends都會(huì)對(duì)超過(guò)130億的在線事件(例如互聯(lián)網(wǎng)點(diǎn)擊流)篩選數(shù)據(jù)到它的Hortonworks,Hortonworks是基于Hadoop的集群。它要花費(fèi)12個(gè)小時(shí)來(lái)讓傳入的數(shù)據(jù)在公司的第一款名為Explore的大數(shù)據(jù)分析應(yīng)用程序中可用。
有了Spark平臺(tái)以流的方式來(lái)處理數(shù)據(jù)和針對(duì)其運(yùn)行自動(dòng)機(jī)器學(xué)習(xí)的算法,在Infinity Analytics的最初用戶企業(yè)中,營(yíng)銷(xiāo)經(jīng)理和數(shù)據(jù)科學(xué)家們能夠在幾分鐘內(nèi)獲得信息,Crossley說(shuō)。他的目標(biāo)是將延時(shí)降至幾秒鐘,這樣客戶端就能為網(wǎng)站訪問(wèn)者動(dòng)態(tài)調(diào)整網(wǎng)頁(yè)和提供營(yíng)銷(xiāo)。
為Spark架構(gòu)提升可移動(dòng)性
Synchronoss Technologies公司同樣將其大數(shù)據(jù)環(huán)境集中在Spark上。“我們非常將Spark作為我們的數(shù)據(jù)處理引擎,” Bridgewater, N.J.公司的大數(shù)據(jù)分析師Suren Nathan說(shuō),該公司給移動(dòng)網(wǎng)絡(luò)運(yùn)營(yíng)商和合作企業(yè)出售移動(dòng)管理應(yīng)用程序和相關(guān)的分析服務(wù)。
大數(shù)據(jù)實(shí)現(xiàn)還包括運(yùn)行了MapR分布的Hadoop集群;它起源于Razorsight Corp.,這是一家Synchronoss在2015年八月收購(gòu)的分析提供商。Nathan負(fù)責(zé)Razorsight的部署工作,他說(shuō)Spark最初是在幾個(gè)主要批處理應(yīng)用程序上作為MapReduce的更快替代品來(lái)使用的。這包括ETL數(shù)據(jù)集成工作,以及給Synchronoss分析團(tuán)隊(duì)提供該公司從其客戶端收集的設(shè)備,網(wǎng)絡(luò)和操作數(shù)據(jù)認(rèn)知的數(shù)據(jù)分析項(xiàng)目。
但Synchronoss正在尋求對(duì)Spark架構(gòu)的使用進(jìn)行擴(kuò)展以用于更加實(shí)時(shí)的處理領(lǐng)域。到今年年底為止,它計(jì)劃為諸如追蹤移動(dòng)設(shè)備使用的應(yīng)用程序添加Spark Streaming,這樣營(yíng)銷(xiāo)產(chǎn)品就能在事件發(fā)生點(diǎn)發(fā)送給客戶,Nathan說(shuō)。接下來(lái)他預(yù)計(jì)在2017年轉(zhuǎn)向MLlib,這是Spark的集群學(xué)習(xí)庫(kù),用于自動(dòng)分析應(yīng)用程序——例如,檢測(cè)公司網(wǎng)絡(luò)中的欺詐活動(dòng)和對(duì)移動(dòng)設(shè)備安全政策的違反。
除了用Python和Java來(lái)編寫(xiě)應(yīng)用程序代碼,Synchronoss還可以通過(guò)該軟件的Spark SQL模塊來(lái)進(jìn)行SQL編程。在其周?chē)暮诵囊婧徒M件中,對(duì)于企業(yè)的大數(shù)據(jù)處理需求來(lái)說(shuō),Spark平臺(tái)是一種一站式服務(wù),Nathan說(shuō)。“如果我們不使用Spark,那么我們就必須對(duì)所有這些東西使用一項(xiàng)不同的技術(shù)。”