生活離不開水,同樣離不開數據,我們被數據包圍,在數據中生活。當數據越來越多時,就成了大數據。
在“中國制造2025”的技術路線圖中,工業大數據是作為重要突破點來規劃的,而在未來的十年,以數據為核心構建的智能化體系會成為支撐智能制造和工業互聯網的核心動力。而想要理解大數據,就需要理解大數據相關的查詢、處理、機器學習、圖計算和統計分析等。Apache Spark作為新一代輕量級大數據快速處理平臺,集成了大數據相關的各種能力,是理解大數據的首選。
簡單來講,Spark就是一個快速、通用的大規模數據處理引擎,各種不同的應用,如實時流處理、機器學習、交互式查詢等,都可以通過Spark 建立在不同的存儲和運行系統上。今天的格物匯,就帶大家來認識一下如日中天、高速發展的大數據處理明星——Spark。
1Spark發展歷程
2009年,Spark誕生于伯克利大學AMPLab,最開初屬于伯克利大學的研究性項目,最開始Spark只是一個實驗性的項目,代碼量非常少,僅有3900行代碼左右,屬于輕量級的框架。
2010年,伯克利大學正式開源了Spark項目。
2013年6月,Spark成為了Apache基金會下的項目,進入高速發展期,第三方開發者貢獻了大量的代碼,活躍度非常高。
2014年2月,Spark以飛快的速度稱為了Apache的頂級項目。
2014年5月底Spark1.0.0發布。
2016年6月Spark2.0.0發布
2018年11月 Spark2.4.0 發布
Spark作為Hadoop生態中重要的一員,其發展速度堪稱恐怖,從誕生到成為Apache頂級項目不到五年時間,不過在如今數據量飛速增長的環境與背景下,Spark作為高效的計算框架能收到如此大的關注也是有所依據的。
2Spark的特點
Spark通過使用先進的DAG調度器、查詢優化器和物理執行引擎,可以高性能地進行批量及流式處理。使用邏輯回歸算法進行迭代計算,Spark比Hadoop速度快100多倍。
Spark目前支持多種編程語言,比如Java、Scala、Python、R。熟悉其中任一門語言的都可以直接上手編寫Spark程序,非常方便。還支持超過80種高級算法,使用戶可以快速構建不同應用。并且Spark還支持交互式的Python和Scala的Shell,這意味著可以非常方便的在這些Shell中使用Spark集群來驗證解決問題的方法,而不是像以前一樣,需要打包、上傳集群、驗證等。這對于原型開發非常重要。
Spark 目前主要由四大組件,如下:
Spark SQL:SQL on Hadoop,能夠提供交互式查詢和報表查詢,通過JDBC等接口調用;
Spark Streaming::流式計算引擎;
Spark MLlib:機器學習庫;
Spark GraphX:圖計算引擎。
擁有這四大組件,成功解決了大數據領域中,離線批處理、交互式查詢、實時流計算、機器學習與圖計算等最重要的任務和問題,這些不同類型的處理都可以在同一應用中無縫使用。Spark統一的解決方案非常具有吸引力,畢竟任何公司都想用統一的平臺處理問題,減少開發和維護的人力成本和部署平臺的物理成本。當然還有,作為統一的解決方案,Spark并沒有以犧牲性能為代價。相反,在性能方面Spark具有巨大優勢。
Spark可以運行在standalone、YARN、Mesos、Kubernetes及EC2多種調度平臺上。其中Standalone模式不依賴第三方的資源管理器和調度器,這樣降低了Spark的使用門檻,使得所有人可以非常容易地部署和使用Spark。
Spark可以處理所有Hadoop支持的數據,包括HDFS、Apach HBase、Apach Kudu、Apach Cassanda等。這對于已部署Hadoop集群的用戶特別重要,因為不需要做任何數據遷移就可以使用Spark強大的處理能力。
Spark與MapReduce 同為計算框架,但作為后起之秀,Spark借鑒了MapReduce,并在其基礎上進行了改進,使得算法性能明顯優于MapReduce,下面大致總結一下兩者差異:
1)Spark把運算的中間數據存放在內存,迭代計算效率更高;MapReduce的中間結果需要落地到磁盤,磁盤io操作多,影響性能。
2)Spark容錯性高,它通過Lineage機制實現RDD算子的高效容錯,某一部分丟失或者出錯,可以通過整個數據集的計算流程的血緣關系來實現重建;MapReduce的話容錯可能只能重新計算了,成本較高。
3)Spark更加通用,Spark提供了transformation和action這兩大類的多個功能算子,操作更為方便;MapReduce只提供了map和reduce兩種操作。
4)Spark框架和生態更為復雜,首先有RDD、血緣lineage、執行時的有向無環圖DAG、stage劃分等等,很多時候spark作業都需要根據不同業務場景的需要進行調優已達到性能要求;MapReduce框架及其生態相對較為簡單,對性能的要求也相對較弱,但是運行較為穩定,適合長期后臺運行。
4Spark與工業互聯平臺
工業互聯網帶來了工業數據的快速發展,對于日益增加的海量數據,傳統單機因本身的軟硬件限制無法應對海量數據的處理、分析以及深度挖掘,但作為分布式計算框架的Spark卻能輕松應付這些場景。在工業互聯網平臺上,Spark 既能快速實現工業現場海量流數據的處理轉換,又能輕松應對工業大數據平臺中海量數據的快速批處理分析,自身集成的機器學習框架能夠對海量工業數據進行深度挖掘分析,從而幫助管理者進行決策分析。
基于Spark框架自身的優良設計理念以及社區的蓬勃發展狀態,相信未來Spark會在工業互聯網平臺扮演越來越重要的角色。
本文作者:黃歡,格創東智大數據工程師 (轉載請注明來源及作者)
-
大數據
+關注
關注
64文章
8897瀏覽量
137527 -
智能制造
+關注
關注
48文章
5576瀏覽量
76399 -
工業互聯網
+關注
關注
28文章
4324瀏覽量
94172 -
SPARK
+關注
關注
1文章
105瀏覽量
19928 -
工業大數據
+關注
關注
0文章
72瀏覽量
7854
發布評論請先 登錄
相關推薦
評論