運(yùn)用Spark加速實(shí)時(shí)數(shù)據(jù)分析
Apache Hadoop是一個(gè)成熟的開發(fā)框架,其連接著龐大的生態(tài)系統(tǒng),并且得到了Cloudera、Hortonwork、Yahoo這些卓越機(jī)構(gòu)的支持與貢獻(xiàn),并且為各個(gè)組織提供了許多工具來管理不同大小規(guī)則的數(shù)據(jù)。
在過去,Hadoop中運(yùn)用MapReduce進(jìn)行批處理的特性足以滿足許多組織的處理需求。然而,隨著信息化時(shí)代的發(fā)展,越來越多組織亟需使用更加快速的數(shù)據(jù)處理。這些需求來自各個(gè)領(lǐng)域的驅(qū)動(dòng),其中包括最近發(fā)展的流媒體技術(shù)、物聯(lián)網(wǎng)、實(shí)時(shí)分析處理,這些也僅僅只是其中一部分。他們需要一套新的數(shù)據(jù)處理模型。在今天,能夠滿足上文提到的需求而引起了業(yè)界人士濃厚興趣與廣泛的支持的一項(xiàng)重要的新技術(shù),就是Apache Spark。從能源產(chǎn)業(yè)到金融行業(yè),Spark憑借其高效性與多功能性已經(jīng)成為當(dāng)今大數(shù)據(jù)處理?xiàng)V械年P(guān)鍵部分。
Spark是一個(gè)比MapReduce更加靈活的開源且通用的計(jì)算框架。Spark憑借其高速的內(nèi)存計(jì)算,在函數(shù)式編程中與Hadoop相比更具生產(chǎn)力。例如,如圖1所示,在邏輯回歸算法性能測試中,Spark內(nèi)存計(jì)算下的運(yùn)行比Hadoop MapReduce快了幾個(gè)數(shù)量級的速度。
圖1:邏輯回歸算法性能測試。圖片來源:Apache Spark,使用已經(jīng)過授權(quán)。
其中Spark的一些特性包括:
- 它利用分布式內(nèi)存進(jìn)行計(jì)算。
- 它支持完整的用有向無環(huán)圖(DAG)來展示數(shù)據(jù)的并行計(jì)算。
- 它可以提高開發(fā)人員的經(jīng)驗(yàn)。
- 它提供了線性可伸縮性與數(shù)據(jù)本地化。
- 它具有容錯(cuò)機(jī)制。
Spark為各種不同的用戶提供著便利:信息技術(shù)開發(fā)人員可以受益于Spark支持各種流行的開發(fā)語言,例如Java、Python、R語言;而數(shù)據(jù)科學(xué)家可以在Spark支持的機(jī)器學(xué)習(xí)(ML)庫中獲得研究便利。
在Spark中還有一個(gè)龐大且不斷增長的 第三方包列表,將各式各樣的工具、環(huán)境、框架、語言整合到一起,從而擴(kuò)展Spark的復(fù)雜性以及能力。
Spark用例可以部署在不同的生產(chǎn)場景中,其中包括在一個(gè)大型技術(shù)公司中運(yùn)用Spark通過使用機(jī)器學(xué)習(xí)來進(jìn)行個(gè)性化搜索;在一個(gè)金融系統(tǒng)中僅需數(shù)小時(shí)便可以處理數(shù)以百萬計(jì)的股票分析,要知道相同的工作量下此前使用Hadoop MapReduce起碼得耗費(fèi)一周的時(shí)間;在學(xué)術(shù)環(huán)境中進(jìn)行基因科學(xué)研究;在視頻系統(tǒng)中,Spark與Spark Streaming被用于處理流媒體及其分析;以及衛(wèi)生保健領(lǐng)域中Spark被用于進(jìn)行疾病的預(yù)測建模。
如此看來似乎各式各樣不同的問題都能通過Spark成功地被解決,但是最重要的是我們?nèi)孕枰粩嗳?yōu)化Spark的架構(gòu),以處理任何所提及到的用例。正如Spark擁有強(qiáng)大的特性,簡而言之,這也意味著它的復(fù)雜性。因此,為了獲得最佳性能的Spark,它需要成為一個(gè)更廣泛的Hadoop基礎(chǔ)數(shù)據(jù)管理平臺(tái)的重要組成部分。此外,為了能在實(shí)時(shí)或者預(yù)測分析中得到更大收益,那么優(yōu)化整個(gè)數(shù)據(jù)供應(yīng)鏈也是至關(guān)重要的。
原文鏈接:Accelerating real-time analytics with Spark
譯者簡介:丘志鵬,關(guān)注大數(shù)據(jù)、機(jī)器學(xué)習(xí)。 via:CSDN