1. 程式人生 > >Spark Core 核心知識--RDD

Spark Core 核心知識--RDD

目錄

1、Spark核心功能

1.1 SparkContext

1.2 儲存體系

1.3 計算引擎

1.4 部署模式

2、Spark擴充套件功能

2.1 Spark

2.2 Spark Streaming

2.3 Spark Graphx

2.4 Spark MLlib

3、Spark核心概念

未完待續!!!!!


1、Spark核心功能

Spark Core 提供 Spark 最基礎的最核心的功能,主要包括: 

1.1 SparkContext

通常而言,DriverApplication 的執行與輸出都是通過 SparkContext 來完成的,在正式提交 Application 之前,首先需要初始化 SparkContext。SparkContext 隱藏了網路通訊、分散式 部署、訊息通訊、儲存能力、計算能力、快取、測量系統、檔案服務、Web 服務等內容, 應用程式開發者只需要使用 SparkContext 提供的 API 完成功能開發。 SparkContext 內建的 DAGScheduler 負責建立 Job,將 DAG 中的 RDD 劃分到不同的 Stage, 提交 Stage 等功能。 SparkContext 內建的 TaskScheduler 負責資源的申請、任務的提交及請求叢集對任務的排程 等工作。

1.2 儲存體系

Spark 優先考慮使用各節點的記憶體作為儲存,當記憶體不足時才會考慮使用磁碟,這極大地 減少了磁碟 I/O,提升了任務執行的效率,使得 Spark 適用於實時計算、流式計算等場景。 此外,Spark 還提供了以記憶體為中心的高容錯的分散式檔案系統 Tachyon 供使用者進行選擇。 Tachyon 能夠為 Spark 提供可靠的記憶體級的檔案共享服務。 

1.3 計算引擎

計算引擎由 SparkContext 中的 DAGScheduler、RDD 以及具體節點上的 Executor 負責執行 的 Map 和 Reduce 任務組成。DAGScheduler 和 RDD 雖然位於 SparkContext 內部,但是在 任務正式提交與執行之前將 Job 中的 RDD 組織成有向無關圖(簡稱 DAG)、並對 Stage 進 行劃分決定了任務執行階段任務的數量、迭代計算、shuffle 等過程。 

1.4 部署模式

由於單節點不足以提供足夠的儲存及計算能力,所以作為大資料處理的 Spark 在SparkContext 的 TaskScheduler 元件中提供了對 Standalone 部署模式的實現和 YARN、Mesos 等分散式資源管理系統的支援。通過使用 Standalone、YARN、Mesos、kubernetes、Cloud 等部署模式為 Task 分配計算資源,提高任務的併發執行效率。除了可用於實際生產環境 的 Standalone、YARN、Mesos、kubernetes、Cloud 等部署模式外,Spark 還提供了 Local 模式和 local-cluster 模式便於開發和除錯。 

2、Spark擴充套件功能

為了擴大應用範圍,Spark 陸續增加了一些擴充套件功能,主要包括: 

2.1 Spark

SQL 由於 SQL 具有普及率高、學習成本低等特點,為了擴大 Spark 的應用面,因此增加了對 SQL 及 Hive 的支援。Spark SQL 的過程可以總結為:首先使用 SQL 語句解析器(SqlParser) 將 SQL 轉換為語法樹(Tree),並且使用規則執行器(RuleExecutor)將一系列規則(Rule) 應用到語法樹,最終生成物理執行計劃並執行的過程。其中,規則包括語法分析器 (Analyzer)和優化器(Optimizer)。 Hive 的執行過程與 SQL 類似。 
2.2Spark Streaming

2.2 Spark Streaming

Spark Streaming與Apache Storm類似,也用於流式計算。Spark Streaming支援Kafka、Flume、 Twitter、MQTT、ZeroMQ、Kinesis 和簡單的 TCP 套接字等多種資料輸入源。輸入流接收器 (Receiver)負責接入資料,是接入資料流的介面規範。Dstream 是 Spark Streaming 中所 有資料流的抽象,Dstream 可以被組織為 DStreamGraph。Dstream 本質上由一系列連續的 RDD 組成。 

2.3 Spark Graphx

Spark 提 供 的 分 布 式 圖 計 算 框 架 。 GraphX 主 要 遵 循 整 體 同 步 並 行 計 算 模 式 (BulkSynchronous Parallell,簡稱 BSP)下的 Pregel 模型實現。GraphX 提供了對圖的抽象 Graph,Graph 由頂點(Vertex)、邊(Edge)及繼承了 Edge 的 EdgeTriplet(添加了 srcAttr 和 dstAttr 用來儲存源頂點和目的頂點的屬性)三種結構組成。GraphX 目前已經封裝了最 短路徑、網頁排名、連線元件、三角關係統計等演算法的實現,使用者可以選擇使用。

2.4 Spark MLlib

Spark 提供的機器學習框架。機器學習是一門涉及概率論、統計學、逼近論、凸分析、算 法複雜度理論等多領域的交叉學科。MLlib 目前已經提供了基礎統計、分類、迴歸、決策 樹、隨機森林、樸素貝葉斯、保序迴歸、協同過濾、聚類、維數縮減、特徵提取與轉型、 頻繁模式挖掘、預言模型標記語言、管道等多種數理統計、概率論、資料探勘方面的數 學演算法。 

3、Spark核心概念

 


轉載的大哥請標明出處:https://blog.csdn.net/qq_42246689/article/details/86253396