Spark架構(gòu)在大數(shù)據(jù)環(huán)境的核心位置找到用武之地
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)信息?,F(xiàn)在,一切都已改變,而且該公司正在花大力氣學(xué)習(xí)Spark并作為其大數(shù)據(jù)平臺升級版本的一部分。
Webtrends從網(wǎng)站,移動設(shè)備和物聯(lián)網(wǎ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)來支持在線營銷活動的實(shí)時(shí)優(yōu)化,而這是以進(jìn)入Hadoop集群的活動數(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ū)動力,公司負(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ù)還能通過一組附加組件來處理更多的互動和實(shí)時(shí)工作負(fù)載,這些附加組件包括機(jī)器學(xué)習(xí)庫,流處理模塊和圖形處理接口。除了其處理速度和應(yīng)用程序多功能性,Spark可以讓用戶避免在MapReduce中編程。相反,他們可以使用更高級別且更為熟悉的語言,如Java,Python,Scala,SQL和R。
Spark擁有足夠的部署選項(xiàng)
Hadoop根本不需要成為以下愿景的一部分:Spark能夠針對數(shù)據(jù)存儲以獨(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版。
但是成熟度問題并不會對諸如Webtrends之類的用戶造成困擾。從Crossley的立場來看,Spark在生產(chǎn)上顯然是已經(jīng)就緒了的。“它是一項(xiàng)穩(wěn)定的技術(shù),對于部署Spark我絲毫沒有猶豫,”他說。
MapReduce不會為了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都會對超過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平臺以流的方式來處理數(shù)據(jù)和針對其運(yùn)行自動機(jī)器學(xué)習(xí)的算法,在Infinity Analytics的最初用戶企業(yè)中,營銷經(jīng)理和數(shù)據(jù)科學(xué)家們能夠在幾分鐘內(nèi)獲得信息,Crossley說。他的目標(biāo)是將延時(shí)降至幾秒鐘,這樣客戶端就能為網(wǎng)站訪問者動態(tài)調(diào)整網(wǎng)頁和提供營銷。
為Spark架構(gòu)提升可移動性
Synchronoss Technologies公司同樣將其大數(shù)據(jù)環(huán)境集中在Spark上。“我們非常將Spark作為我們的數(shù)據(jù)處理引擎,” Bridgewater, N.J.公司的大數(shù)據(jù)分析師Suren Nathan說,該公司給移動網(wǎng)絡(luò)運(yùn)營商和合作企業(yè)出售移動管理應(yīng)用程序和相關(guān)的分析服務(wù)。
大數(shù)據(jù)實(shí)現(xiàn)還包括運(yùn)行了MapR分布的Hadoop集群;它起源于Razorsight Corp.,這是一家Synchronoss在2015年八月收購的分析提供商。Nathan負(fù)責(zé)Razorsight的部署工作,他說Spark最初是在幾個(gè)主要批處理應(yīng)用程序上作為MapReduce的更快替代品來使用的。這包括ETL數(shù)據(jù)集成工作,以及給Synchronoss分析團(tuán)隊(duì)提供該公司從其客戶端收集的設(shè)備,網(wǎng)絡(luò)和操作數(shù)據(jù)認(rèn)知的數(shù)據(jù)分析項(xiàng)目。
但Synchronoss正在尋求對Spark架構(gòu)的使用進(jìn)行擴(kuò)展以用于更加實(shí)時(shí)的處理領(lǐng)域。到今年年底為止,它計(jì)劃為諸如追蹤移動設(shè)備使用的應(yīng)用程序添加Spark Streaming,這樣營銷產(chǎn)品就能在事件發(fā)生點(diǎn)發(fā)送給客戶,Nathan說。接下來他預(yù)計(jì)在2017年轉(zhuǎn)向MLlib,這是Spark的集群學(xué)習(xí)庫,用于自動分析應(yīng)用程序——例如,檢測公司網(wǎng)絡(luò)中的欺詐活動和對移動設(shè)備安全政策的違反。
除了用Python和Java來編寫應(yīng)用程序代碼,Synchronoss還可以通過該軟件的Spark SQL模塊來進(jìn)行SQL編程。在其周圍的核心引擎和組件中,對于企業(yè)的大數(shù)據(jù)處理需求來說,Spark平臺是一種一站式服務(wù),Nathan說。“如果我們不使用Spark,那么我們就必須對所有這些東西使用一項(xiàng)不同的技術(shù)。”