本篇文章為大家展示了Spark基礎知識點是什么,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
在說Spark之前,筆者在這里向對Spark感興趣的小伙伴們建議,想要了解、學習、使用好Spark,Spark的官網是一個很好的工具,幾乎能滿足你大部分需求。同時,建議學習一下scala語言,主要基于兩點:1. Spark是scala語言編寫的,要想學好Spark必須研讀分析它的源碼,當然其他技術也不例外;2. 用scala語言編寫Spark程序相對于用Java更方便、簡潔、開發效率更高。書歸正傳,下面整體介紹一下Spark生態圈。
Apache Spark是一種快速、通用、可擴展、可容錯的、基于內存迭代計算的大數據分析引擎。首先強調一點, Spark目前是一個處理數據的計算引擎, 不做存儲。首先咱們通過一張圖來看看目前Spark生態圈都包括哪些核心組件:
本篇文章先簡單介紹一下各個組件的使用場景,后續筆者會單獨詳解其中的核心組件,以下所講均基于Spark2.X版本。
Spark RDD和Spark SQL
Spark RDD和Spark SQL多用于離線場景,但Spark RDD即可以處理結構化數據也可以處理非結構數據,但Spark SQL是處理結構化數據的,內部通過dataset來處理分布式數據集
SparkStreaming和StructuredStreaming
用于流式處理,但強調一點Spark Streaming是基于微批處理來處理數據的,即使Structured Streaming在實時方面作了一定優化,但就目前而言,相對于Flink、Storm,Spark的流式處理準備確實準實時處理
MLlib
用于機器學習,當然pyspark也有應用是基于python做數據處理
GraphX
用于圖計算
Spark R
基于R語言進行數據處理、統計分析的
下面介紹一下Spark的特性
快
實現DAG執行引擎,基于內存迭代式計算處理數據,Spark可以將數據分析過程的中間結果保存在內存中,從而不需要反復的從外部存儲系統中讀寫數據,相較于mapreduce能更好地適用于機器學習和數據挖掘和等需要迭代運算的場景。
易用
支持scala、java、python、R多種語言;支持多種高級算子(目前有80多種),使用戶可以快速構建不同應用;支持scala、python等shell交互式查詢
通用
Spark強調一站式解決方案,集批處理、流處理、交互式查詢、機器學習及圖計算于一體,避免多種運算場景下需要部署不同集群帶來的資源浪費
容錯性好
在分布式數據集計算時通過checkpoint來實現容錯,當某個運算環節失敗時,不需要從頭開始重新計算【往往是checkpoint到HDFS上】
兼容性強
可以運行在Yarn、Kubernetes、Mesos等資源管理器上,實現Standalone模式作為內置資源管理調度器,支持多種數據源
上述內容就是Spark基礎知識點是什么,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。