Apache Spark在頭條新聞和實(shí)際應(yīng)用中迅速獲得發(fā)展。加州大學(xué)伯克利分校的AMPLab于2009年開發(fā)了Spark,并于2010年將其開源。從那時(shí)起,它已發(fā)展成為大數(shù)據(jù)分析領(lǐng)域最大的開源社區(qū)之一,擁有來自50多個(gè)組織的200多位貢獻(xiàn)者。這個(gè)開放源代碼分析引擎以比MapReduce更快的速度處理大量數(shù)據(jù)而出類拔萃,因?yàn)閿?shù)據(jù)被持久存儲(chǔ)在Spark自己的處理框架中。
在考慮Hadoop生態(tài)系統(tǒng)中的各種引擎時(shí),重要的是要了解每個(gè)引擎在某些用例下效果最佳,并且企業(yè)可能需要使用多種工具組合才能滿足每個(gè)所需的用例。話雖如此,這里是對(duì)Apache Spark的一些頂級(jí)功能分析。
一、流數(shù)據(jù)
Apache Spark的關(guān)鍵用例是其處理流數(shù)據(jù)的能力。由于每天要處理大量數(shù)據(jù),因此對(duì)于公司而言,實(shí)時(shí)流傳輸和分析數(shù)據(jù)變得至關(guān)重要。Spark Streaming具有處理這種額外工作負(fù)載的能力。一些專家甚至認(rèn)為,無論哪種類型,Spark都可以成為流計(jì)算應(yīng)用程序的首選平臺(tái)。提出此要求的原因是,Spark Streaming統(tǒng)一了不同的數(shù)據(jù)處理功能,從而使開發(fā)人員可以使用單個(gè)框架來滿足其所有處理需求。
當(dāng)今企業(yè)使用Spark Streaming的一般方式包括:
流式ETL –在數(shù)據(jù)倉庫環(huán)境中用于批處理的傳統(tǒng)ETL(提取,轉(zhuǎn)換,加載)工具必須讀取數(shù)據(jù),將其轉(zhuǎn)換為數(shù)據(jù)庫兼容格式,然后再將其寫入目標(biāo)數(shù)據(jù)庫。使用Streaming ETL,在將數(shù)據(jù)推送到數(shù)據(jù)存儲(chǔ)之前,將對(duì)其進(jìn)行連續(xù)的清理和聚合。
數(shù)據(jù)充實(shí) –這種Spark Streaming功能通過將實(shí)時(shí)數(shù)據(jù)與靜態(tài)數(shù)據(jù)相結(jié)合來充實(shí)實(shí)時(shí)數(shù)據(jù),從而使組織能夠進(jìn)行更完整的實(shí)時(shí)數(shù)據(jù)分析。在線廣告商使用數(shù)據(jù)充實(shí)功能將歷史客戶數(shù)據(jù)與實(shí)時(shí)客戶行為數(shù)據(jù)結(jié)合起來,并根據(jù)客戶的行為實(shí)時(shí)提供更多個(gè)性化和針對(duì)性的廣告。
觸發(fā)事件檢測(cè) – Spark Streaming使組織可以檢測(cè)到可能對(duì)系統(tǒng)內(nèi)部潛在嚴(yán)重問題的罕見或異常行為(“觸發(fā)事件”)并做出快速響應(yīng)。金融機(jī)構(gòu)使用觸發(fā)器來檢測(cè)欺詐性交易并阻止其欺詐行為。醫(yī)院還使用觸發(fā)器來檢測(cè)潛在的危險(xiǎn)健康變化,同時(shí)監(jiān)視患者的生命體征-向正確的護(hù)理人員發(fā)送自動(dòng)警報(bào),然后他們可以立即采取適當(dāng)?shù)拇胧?br />
復(fù)雜的會(huì)話分析 –使用Spark Streaming,與實(shí)時(shí)會(huì)話有關(guān)的事件(例如登錄網(wǎng)站或應(yīng)用程序后的用戶活動(dòng))可以組合在一起并進(jìn)行快速分析。會(huì)話信息還可以用于不斷更新機(jī)器學(xué)習(xí)模型。諸如Netflix之類的公司使用此功能可立即了解用戶在其網(wǎng)站上的參與方式,并提供更多實(shí)時(shí)電影推薦。
二、機(jī)器學(xué)習(xí)
許多Apache Spark用例中的另一個(gè)是它的機(jī)器學(xué)習(xí)功能。
Spark帶有用于執(zhí)行高級(jí)分析的集成框架,該框架可幫助用戶對(duì)數(shù)據(jù)集進(jìn)行重復(fù)查詢,這從本質(zhì)上講就是處理機(jī)器學(xué)習(xí)算法。在此框架中找到的組件包括Spark的可擴(kuò)展機(jī)器學(xué)習(xí)庫(MLlib)。MLlib可以在諸如聚類,分類和降維等領(lǐng)域中工作。所有這些使Spark可以用于一些非常常見的大數(shù)據(jù)功能,例如預(yù)測(cè)智能,用于營銷目的的客戶細(xì)分以及情感分析。使用推薦引擎的公司將發(fā)現(xiàn)Spark可以快速完成工作。
網(wǎng)絡(luò)安全是Spark 機(jī)器學(xué)習(xí)功能的一個(gè)很好的商業(yè)案例。通過使用Spark堆棧的各種組件,安全提供程序可以對(duì)數(shù)據(jù)包進(jìn)行實(shí)時(shí)檢查,以發(fā)現(xiàn)惡意活動(dòng)的痕跡。在前端,Spark Streaming允許安全分析人員在將數(shù)據(jù)包傳遞到存儲(chǔ)平臺(tái)之前檢查已知威脅。到達(dá)存儲(chǔ)區(qū)后,數(shù)據(jù)包將通過其他堆棧組件(例如MLlib)進(jìn)行進(jìn)一步分析。因此,安全提供商可以在不斷發(fā)展的過程中了解新的威脅-始終領(lǐng)先于黑客,同時(shí)實(shí)時(shí)保護(hù)其客戶。
三、互動(dòng)分析
Spark最顯著的功能之一就是其交互式分析功能。MapReduce是為處理批處理而構(gòu)建的,而Hive或Pig等SQL-on-Hadoop引擎通常太慢,無法進(jìn)行交互式分析。但是,Apache Spark足夠快,可以執(zhí)行探索性查詢而無需采樣。Spark還與包括SQL,R和Python在內(nèi)的多種開發(fā)語言接口。通過將Spark與可視化工具結(jié)合使用,可以交互地處理和可視化復(fù)雜的數(shù)據(jù)集。
下一版本的Apache Spark(Spark 2.0)將于今年的4月或5月首次亮相,它將具有一項(xiàng)新功能- 結(jié)構(gòu)化流 -使用戶能夠?qū)?shí)時(shí)數(shù)據(jù)執(zhí)行交互式查詢。通過將實(shí)時(shí)流與其他類型的數(shù)據(jù)分析相結(jié)合,預(yù)計(jì)結(jié)構(gòu)化流將通過允許用戶針對(duì)Web訪問者當(dāng)前會(huì)話運(yùn)行交互式查詢來促進(jìn)Web分析。它也可以用于將機(jī)器學(xué)習(xí)算法應(yīng)用于實(shí)時(shí)數(shù)據(jù)。在這種情況下,將對(duì)舊數(shù)據(jù)進(jìn)行算法訓(xùn)練,然后將其重定向以合并新的數(shù)據(jù),并在其進(jìn)入??內(nèi)存時(shí)從中學(xué)習(xí)。
四、霧計(jì)算
盡管大數(shù)據(jù)分析可能會(huì)引起廣泛關(guān)注,但真正激發(fā)技術(shù)界想象力的概念是物聯(lián)網(wǎng)(IoT)。物聯(lián)網(wǎng)通過微型傳感器將對(duì)象和設(shè)備嵌入在一起,這些微型傳感器彼此之間以及與用戶進(jìn)行通信,從而創(chuàng)建了一個(gè)完全互連的世界。這個(gè)世界收集了大量數(shù)據(jù),對(duì)其進(jìn)行處理,并提供革命性的新功能和應(yīng)用程序供人們?cè)谌粘I钪惺褂?。但是,隨著物聯(lián)網(wǎng)的擴(kuò)展,對(duì)大量,種類繁多的機(jī)器和傳感器數(shù)據(jù)進(jìn)行大規(guī)模并行處理的需求也隨之增加。但是,利用云中的當(dāng)前分析功能很難管理所有這些處理。
五、那就是霧計(jì)算和Apache Spark出現(xiàn)的地方
霧計(jì)算將數(shù)據(jù)處理和存儲(chǔ)分散化,而不是在網(wǎng)絡(luò)邊緣執(zhí)行這些功能。但是,霧計(jì)算為處理分散數(shù)據(jù)帶來了新的復(fù)雜性,因?yàn)樗絹碓叫枰脱舆t,機(jī)器學(xué)習(xí)的大規(guī)模并行處理以及極其復(fù)雜的圖形分析算法。幸運(yùn)的是,有了Spark Streaming等關(guān)鍵堆棧組件,交互式實(shí)時(shí)查詢工具(Shark),機(jī)器學(xué)習(xí)庫(MLib)和圖形分析引擎(GraphX),Spark不僅具有霧計(jì)算解決方案的資格。實(shí)際上,隨著物聯(lián)網(wǎng)行業(yè)逐漸不可避免地融合,許多行業(yè)專家預(yù)測(cè),與其他開源平臺(tái)相比,Spark有可能成為事實(shí)上的霧基礎(chǔ)設(shè)施。
六、現(xiàn)實(shí)世界中的火花
如前所述,在線廣告商和諸如Netflix之類的公司正在利用Spark獲得見識(shí)和競(jìng)爭(zhēng)優(yōu)勢(shì)。其他也從Spark受益的著名企業(yè)是:
Uber –這家跨國在線出租車調(diào)度公司每天都從其移動(dòng)用戶那里收集TB級(jí)的事件數(shù)據(jù)。通過使用Kafka,Spark Streaming和HDFS構(gòu)建連續(xù)的ETL管道,Uber可以在收集原始非結(jié)構(gòu)化事件數(shù)據(jù)時(shí)將其轉(zhuǎn)換為結(jié)構(gòu)化數(shù)據(jù),然后將其用于進(jìn)一步和更復(fù)雜的分析。
Pinterest –通過類似的ETL管道,Pinterest可以利用Spark Streaming即時(shí)了解世界各地的用戶如何與Pins互動(dòng)。因此,當(dāng)人們?yōu)g覽站點(diǎn)并查看相關(guān)的圖釘時(shí),Pinterest可以提出更相關(guān)的建議,以幫助他們選擇食譜,確定要購買的產(chǎn)品或計(jì)劃前往各個(gè)目的地的行程。
Conviva –這家流媒體視頻公司每月平均約有400萬個(gè)視頻供稿,僅次于YouTube。Conviva使用Spark通過優(yōu)化視頻流和管理實(shí)時(shí)視頻流量來減少客戶流失,從而保持一致的流暢,高質(zhì)量的觀看體驗(yàn)。
七、何時(shí)不使用Spark
盡管它具有通用性,但這并不一定意味著Apache Spark的內(nèi)存中功能最適合所有用例。更具體地說,Spark并非設(shè)計(jì)為多用戶環(huán)境。Spark用戶需要知道他們有權(quán)訪問的內(nèi)存對(duì)于數(shù)據(jù)集是否足夠。添加更多的用戶使此操作變得更加復(fù)雜,因?yàn)橛脩舯仨殔f(xié)調(diào)內(nèi)存使用量才能同時(shí)運(yùn)行項(xiàng)目。由于無法處理這種類型的并發(fā),用戶將需要為大型批處理項(xiàng)目考慮使用備用引擎,例如Apache Hive。
隨著時(shí)間的流逝,Apache Spark將繼續(xù)發(fā)展自己的生態(tài)系統(tǒng),變得比以前更加通用。在大數(shù)據(jù)已成為規(guī)范的世界中,組織將需要找到最佳方式來利用它。從這些Apache Spark用例可以看出,未來幾年將有很多機(jī)會(huì)來了解Spark的真正功能。
隨著越來越多的組織認(rèn)識(shí)到從批處理過渡到實(shí)時(shí)數(shù)據(jù)分析的好處,Apache Spark的定位是可以在眾多行業(yè)中獲得廣泛而快速的采用
填寫下面表單即可預(yù)約申請(qǐng)免費(fèi)試聽!怕錢不夠?可先就業(yè)掙錢后再付學(xué)費(fèi)! 怕學(xué)不會(huì)?助教全程陪讀,隨時(shí)解惑!擔(dān)心就業(yè)?一地學(xué)習(xí),可推薦就業(yè)!
?2007-2022/ mwtacok.cn 北京漫動(dòng)者數(shù)字科技有限公司 備案號(hào): 京ICP備12034770號(hào) 監(jiān)督電話:010-53672995 郵箱:bjaaa@aaaedu.cc