發布時間: 2023-03-08 17:11:01
Spark于2009年誕生于美國加州大學伯克利分校的AMP實驗室,它是一個可應用于大規模數據處理的統一分析引擎。Spark不僅計算速度快,而且內置了豐富的API,使得我們能夠更加容易編寫程序,>本章將從Spark的發展說起,針對Spark集群部署、Spark運行架構及其原理進行詳細講解。
Spark在2013年加入Apache孵化器項目,之后獲得迅猛的發展,并于2014年正式成為Apache軟件基金會的頂級項目。Spark生態系統已經發展成為一個可應用于大規模數據處理的統一分析引擎,它是基于內存計算的大數據并行計算框架,適用于各種各樣的分布式平臺的系統。在Spark生態圈中包含了Spark SQL、Spark Streaming、GraphX、MLlib等組件。
Spark Core
Spark核心組件,實現了Spark的基本功能,包含任務調度、內存管理、錯誤恢復、與存儲系統交互等模塊。Spark Core中還包含對彈性分布式數據集的API定義。
Spark SQL
用來操作結構化數據的核心組件,通過Spark SQL可直接查詢Hive、HBase等多種外部數據源中的數據。Spark SQL的重要特點是能夠統一處理關系表和RDD。
Spark Streaming
Spark提供的流式計算框架,支持高吞吐量、可容錯處理的實時流式數據處理,其核心原理是將流數據分解成一系列短小的批處理作業。
MLlib
Spark提供的關于機器學習功能的算法程序庫,包括分類、回歸、聚類、協同過濾算法等,還提供了模型評估、數據導入等額外的功能。
GraphX
Spark提供的分布式圖處理框架,擁有對圖計算和圖挖掘算法的API接口及豐富的功能和運算符,便于對分布式圖處理的需求,能在海量數據上運行復雜的圖算法。
獨立調度器、Yarn、Mesos
集群管理器,負責Spark框架高效地在一個到數千個節點之間進行伸縮計算的資源管理。
Spark計算框架在處理數據時,所有的中間數據都保存在內存中,從而減少磁盤讀寫操作,提高框架計算效率。同時Spark還兼容HDFS、Hive,可以很好地與Hadoop系統融合,從而彌補MapReduce高延遲的性能缺點。所以說,Spark是一個更加快速、高效的大數據計算平臺。
數據科學
數據工程師可以利用Spark進行數據分析與建模,由于Spark具有良好的易用性,數據工程師只需要具備一定的SQL語言基礎、統計學、機器學習等方面的經驗,以及使用Python、Matlab或者R語言的基礎編程能力,就可以使用Spark進行上述工作。
數據處理
大數據工程師將Spark技術應用于廣告、報表、推薦系統等業務中,在廣告業務中,利用Spark系統進行應用分析、效果分析、定向優化等業務,在推薦系統業務中,利用Spark內置機器學習算法訓練模型數據,進行個性化推薦及熱點點擊分析等業務。
上一篇: NoSQL的基本概念
下一篇: MinIo是什么服務