亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

spark基本工作流程是怎么樣的

發布時間:2021-12-10 11:52:03 來源:億速云 閱讀:544 作者:小新 欄目:云計算

小編給大家分享一下spark基本工作流程是怎么樣的,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

引言

Spark的應用分為任務調度和任務執行兩個部分,所有的Spark應用程序都離不開SparkContext和Executor兩部分,Executor負責執行任務,運行Executor的機器稱為Worker節點,SparkContext由用戶程序啟動,通過資源調度模塊和Executor通信。

spark基本工作流程是怎么樣的

具體來說,以SparkContext為程序運行的總入口,在SparkContext的初始化過程中,Spark會分別創建DAGScheduler作業調度和TaskScheduler任務調度兩級調度模塊。

其中作業調度模塊是基于任務階段的高層調度模塊,它為每個Spark作業計算具有依賴關系的多個調度階段(通常根據shuffle來劃分),然后為每個階段構建出一組具體的任務(通常會考慮數據的本地性等),然后以TaskSets(任務組)的形式提交給任務調度模塊來具體執行。而任務調度模塊則負責具體啟動任務、監控和匯報任務運行情況。

spark應用程序的運行架構:

(1)簡單的說:

由driver向集群申請資源,集群分配資源,啟動executor。driver將spark應用程序的代碼和文件傳送給executor。executor上運行task,運行完之后將結果返回給driver或者寫入外界。

(2)復雜點說:

提交應用程序,構建sparkContext,構建DAG圖,提交給scheduler進行解析,解析成一個個stage,提交給集群,由集群任務管理器進行調度,集群啟動spark executor。driver把代碼和文件傳給executor。executor進行各種運算完成task任務。driver上的block tracker記錄executor在各個節點上產生的數據塊。task運行完之后,將數據寫入HDFS上或者其他類型數據庫里。

(3)全面點說:

spark應用程序進行各種transformation的計算,最后通過action觸發job。提交之后首先通過sparkContext根據RDD的依賴關系構建DAG圖,DAG圖提交給DAGScheduler進行解析,解析時是以shuffle為邊界,反向解析,構建stage,stage之間也有依賴關系。這個過程就是對DAG圖進行解析劃分stage,并且計算出各個stage之間的依賴關系。然后將一個個TaskSet提交給底層調度器,在spark中是提交給taskScheduler處理,生成TaskSet manager,最后提交給executor進行計算,executor多線程計算,計算完反饋給TaskSetmanager,再反饋給taskScheduler,然后再反饋回DAGScheduler。全部運行完之后寫入數據。

(4)更加深入理解:

應用程序提交后,觸發action,構建sparkContext,構建DAG圖,提交給DAGScheduler,構建stage,以stageSet方式提交給TaskScheduler,構建taskSet Manager,然后將task提交給executor運行。executor運行完task后,將完成信息提交給schedulerBackend,由它將任務完成的信息提交給TaskScheduler。TaskScheduler反饋信息給TaskSetManager,刪除該task任務,執行下一個任務。同時TaskScheduler將完成的結果插入到成功隊列里,加入之后返回加入成功的信息。TaskScheduler將任務處理成功的信息傳給TaskSet Manager。全部任務完成后TaskSet Manager將結果反饋給DAGScheduler。如果屬于resultTask,交給JobListener。如果不屬于resultTask,保存結果。

spark作業提交到執行

spark基本工作流程是怎么樣的

SparkContext通過DAGScheduler的runJob提交作業。然后DAGScheduler將Job劃分為Stage,Spark根據RDD的依賴關系劃分Stage,最終將其封裝成taskset進行提交。TaskScheduler類負責任務調度資源的分配,SchedulerBackend負責與Master、Worker通信收集Worker上分配給該應用使用的資源情況。executor負責具體的任務執行。

Driver的任務提交過程

spark基本工作流程是怎么樣的

1、Driver程序的代碼運行到action操作,觸發了SparkContext的runJob方法。
2、SparkContext調用DAGScheduler的runJob函數。
3、DAGScheduler把Job劃分stage,然后把stage轉化為相應的Tasks,把Tasks交給TaskScheduler。
4、通過TaskScheduler把Tasks添加到任務隊列當中,交給SchedulerBackend進行資源分配和任務調度。
5、調度器給Task分配執行Executor,ExecutorBackend負責執行Task。

以上是“spark基本工作流程是怎么樣的”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

正阳县| 鄂尔多斯市| 马鞍山市| 阿荣旗| 玉田县| 漾濞| 罗平县| 哈尔滨市| 天等县| 卢龙县| 东阿县| 长汀县| 大英县| 东丰县| 桂东县| 珠海市| 同心县| 碌曲县| 鲁甸县| 吐鲁番市| 图们市| 建阳市| 西华县| 洛扎县| 噶尔县| 临清市| 灯塔市| 祁连县| 文山县| 临沭县| 峨边| 合水县| 揭西县| 五大连池市| 霍山县| 曲阳县| 武穴市| 南康市| 三河市| 南丰县| 武隆县|