在用戶體驗達不到所宣傳效果之后,IT領域中必然會隨之出現“新的熱門事件”。目前的新熱門事件涉及大數據和對海量分布式數據的快速精準分析。
在目前的大數據領域中,Hadoop被作為存儲和分配海量數據的軟件,而MapReduce則被作為處理這些海量數據的引擎。兩者整合在一起可以批處理一些對時效性沒有過高要求的數據。
那么對于近實時大數據分析應當怎么辦呢?作為最先進的下一代開源技術Apache Spark已經為視頻、傳感器、交易等流數據的分析、機器學習、預測建模創造了條件。它們可以用于基因組研究、封包檢測、惡意軟件探測和物聯網。
Spark不僅可像MapReduce那樣用于批處理,對于需要與數據集進行大量交互的算法,Spark還可以將這些運算的中間結果存儲在緩存中。相比之下,在帶入系統進行下一步處理前,MapReduce必須要將每步運算的結果寫入磁盤。這種在內存中對彈性分布式數據集(RDD)的快速處理可以說是Apache Spark的核心能力。
Salient Federal Solutions公司一直致力于使用Spark為政府機構開發分析產品。該公司預測分析主任Dave Vennergrund稱:“一旦執行對數據集的操作,它們能夠進行相互連接,從而使得轉換能夠被迅速完成。加之它們能夠同時跨多臺機器做這一工作,這使得我們能夠迅速做出反應。”
Spark的支持者認為,與競爭對手相比,Spark在擴展性和速度方面都具有優勢。突出表現為在小數據集升級為拍字節后,它們仍然能夠出色地工作。在2014年11月份的基準競賽中,Apache Spark整理100太字節數據的速度比Hadoop MapReduce快了三倍,并且其機器集群的規模是MapReduce的十分之一。
據軟件開發公司Typesafe近期觀察顯示,對Spark感興趣的機構在數量上正在不斷增長。數據顯示,目前13%的受訪者正在使用Spark,約30%的受訪者正在對Spark進行評估,20%的受訪者計劃在今年某一時候開始使用Spark。另有6%的受訪者希望在2016年或更晚時候使用 Spark。此外,28%的受訪者還對Spark不了解,認為它們還不成熟。
Salient 的數據分析中心副總裁Cindy Walker稱:“對于政府來說,他們正在進行測試與評估。早期部署者都是那些有沙盒和研發預算的部門。我們的許多客戶現在對大數據部署、內存分析、流解決方案都還沒有劃定能力底線。因此,我們目前正在使用Spark幫助他們設定合理的目標。”
雖然Spark還無法取代MapReduce,但是它們最終將成為大數據分析領域的一部分,推動數據被以更快的速度處理。
Apache Spark生態環境有以下幾個組成部分:
Spark Core:平臺的底層執行引擎,支持大量應用以及Java、Scala和Python等應用程序接口(API)。
Spark SQL(結構化查詢語言) :用戶可通過其探究數據。
Spark Streaming:可對來自推特的流數據進行分析,并且讓Spark具備批處理能力。
機器學習庫 (MLlib):一種分布式機器學習架構,交付高質量算法的速度比MapReduce快100倍。
Graph X:幫助用戶以圖形的形式表現文本和列表數據,找出數據中的不同關系。
SparkR:針對R統計語言的程序包。R用戶可通過其在R殼中使用Spark功能。
BlinkDB:大型并行引擎。允許用戶對海量數據執行類SQL查詢,在速度重要性高于精確性的情況下非常有用。