Webtrends公司的IT團(tuán)隊(duì)在Apache Spark這款處理引擎還是一項(xiàng)學(xué)術(shù)研究項(xiàng)目的時(shí)候就已經(jīng)開始使用它并沿用至今。但當(dāng)Webtrends在2014年年中部署了一套基于Hadoop的大數(shù)據(jù)環(huán)境來對分析應(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)升級版本的一部分。

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