日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Spark详解(十一):Spark运行架构原理分析

發布時間:2025/4/16 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Spark详解(十一):Spark运行架构原理分析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1. Spark 運行架構總體分析

1.1 總體介紹

Spark應用程序的運行架構基本上由三部分組成,包括SparkContext(驅動程序)、ClusterManger(集群資源管理器)和Executor(任務執行進程)組成

  • SparkContext負責與Cluster Manager通信,進行資源的分配和監控等,負責作業的執行的全生命周期管理。
  • ClusterManger提供了資源的分配和管理,在不同的運行模式下,擔任的角色不同,在本地運行、SPakrStandalane模式下由Master提供,在Yarn運行模式下由Resource Mangaer擔任。

1.2 重要類介紹

TaskShceduler是重要的Spark的重要調度器之一,它負責具體任務的調度執行,而SchuedlerBackend則負責應用程序運行期間與底層資源調度系統交互。

應用程序具體運行的過程是:

  • SparkContext啟動時,調用TaskScheduler.start方法啟動TaskSchedule人調度器
  • DAGScheduler調度階段和任務拆分完畢時,調用TaskSchudler.submitTask方法提交任務。
  • SchedulerBackend接收到執行任務時,通過receiveOffers方法分配運行資源并啟動運行節點的Executor
  • 由TaskScheduler接受到任務運行狀態,如果任務運行完畢,則繼續分配,直到應用程序運行完畢。
  • 下面我們介紹Spark運行架構中十分重要的兩個類:

    • TaskScheduler:該類是高層調度器DAGScheduler與任務執行SchedulerBackend的橋梁。TaskScheduler是特質類,定義了任務調度相關的實現方法,TaskSchedulerImpl是其重要的子類,它實現了TaskSchedulerde所有的接口方法,而TaskScheduler的孫子類YarnScheduler和YarnClusterScheduler只是重寫其中的一兩個方法。
    • SchedulerBackend:該類為特質類,子類根據不同的運行模式分為本地運行模式LoaclBackend,粗粒度運行模式的CoarseGraniedSchedulerBackend和細粒度MesosSchedulerBackend。粗粒度運行模式包括獨立運行模式(Standalane)的SparkDelploySchedulerBackend、Yarn運行模式的YarnSchedulerBackend和粗粒度CoarssMesosSchedulerBackend。

    2. 獨立運行模式(Standalane)運行模式

    獨立運行模式是Spark自身實現的資源調度框架,由客戶端、Master節點和Worker節點組成,其中SparkContext既可以運行在Master節點,也可以運行在本地客戶端。

    Worker節點可以通過ExecutorRunner運行在當前節點上的CoarseGrainedExecutorBackend進程,每個Worker節點存在一個或者多個CoarseGrainedExecutorBackend進程,每個進程包含一個Executor對象。該對象有一個線程池,每個線程可以執行一個任務。

    (1)啟動應用程序,在SparkContext啟動過程中,先初始化DAGScheduler和TaskSchedulerImpl兩個調度器,同時初始化SparkDelploySchedulerBackend,并且在內部啟動終端點DriverEndPoint和ClientEndPoint。

    (2)終端點ClientEndPoint向Master注冊應用程序,Master收到注冊信息把該應用程序加入到等待應用程序隊列中,等待Master分派給該應用程序Worker。

    (3)當前應用程序獲取Worker時,Master會通知worker中的終端點WorkerEndpoint創建CoarseGrainedExecutorBackend進程,在該進程中創建執行容器Executor。

    (4) Executor創建完畢后發送消息而給Master和終端點DriverEndPoint,告知Executor以及創建完畢,在SparkContext成功注冊之后,等待接收從Driver終端點執行任務的信息。

    (5)SparkContext分配任務給CoarseGrainedExecutorBackend進程執行,任務執行在按照一定的調度策略進行的。

    (6)CoarseGrainedExecutorBackend在任務處理的過程中,把處理任務的狀態發送給SparkContext的終端點DriverEndPoint,SparkContext根據任務執行不同的結果進行處理。如果任務集處理完畢之后,則會繼續發送其他任務集。

    (7)應用程序運行完畢之后,SparkContext就會進行資源回收,先銷毀在Worker的CoarseGrainedExecutorBackend進程,然后再銷毀自身。

    3. YARN運行模式

    Yarn是一種資源管理機制,其上面可以運行多套計算框架。Yarn 運行模式根據Driver在集群中的位置分為兩個模式,一種是Yarn-Client模式,還有一種是Yarn-Cluster模式。

    3.1 Yarn 運行框架

    3.2 Yarn-Client運輸模式

    Yarn-Client運行模式分為以下幾個步驟:

    (1)啟動應用程序,在SparkContext啟動過程中,先初始化DAGScheduler。使用反射方法初始化YarnScheduler和YarnClientSchedulerBackend。YarnClientSchedulerBackend在內部啟動DriverEndPoint和Client。

    (2)ResourceManager收到請求之后,在集群中選擇一個NodeManager,為該應用程序分配一個Container,為該應用程序分配一個Container,要求這個Container中啟動應用程序的ApplicationMaster,與Yarn-Cluster有區別的是,在該Application Master不運行SparkContext,只與SparkContext進行聯系,并且進行資源的分配

    (3)客戶端的SparkContext啟動完畢之后,與ApplicationMaster建立通信,向ResourceManager注冊,根據任務信息向ResourceManager申請資源(Container)。

    (4)一旦ApplicationMaster申請到了資源(Container)后,便于對應的NodeManager建立通信,要求它在獲得的Container中啟動CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend會向客戶端中的SparkContext進行注冊并且申請任務集。

    (5)客戶端中的SparkContext分配任務集給CoarseGrainedExecutorBackend執行,CoarseGrainedExecutorBackend運行任務并且向終端點DriverEndpoint匯報任務運行的狀態和進展,客戶端隨時掌握各個任務的運行狀態,從而可以在任務失敗的時候重新啟動任務

    (6)應用程序執行完畢之后,客戶端的SparkContext向ResourceManger申請注銷并且關閉本身。

    下面我們用spark-submint腳本提交Yarn-Client應用程序

    bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn-client --num-executors 3 --driver-memory 4g \ --executor-memory 2g \ --executor-cores 1 lib\spark-examples*.jar

    3.3 Yarn-Cluster運行模式介紹

    在Yarn-Cluster模式中,當向用戶YARN中提交一個應用程序之后,YARN將分為兩個階段運行在該應用程序中:第一個階段是把Spark的Driver作為一個ApplicationMaster在YARN集群中啟動;第二階段是由ApplicationMaster創建應用程序,然后它向ResourceManager申請資源,并且啟動Executor來運行任務集,同時監控它的整個執行過程,直到運行完成。

    (1)客戶端提交應用程序時,啟動Client向YARN中提交應用程序,包括啟動Application Master的命令、提交給Application Master的程序和需要在Executor中運行的程序等。

    (2)esourceManager收到請求之后,在集群中選擇一個NodeManager,為該應用程序分配一個Container,為該應用程序分配一個Container,要求這個Container中啟動應用程序的ApplicationMaster。其中ApplicationMaster進行SparkContext等初始化工作。

    (3)中ApplicationMaster向ResourceManager注冊,根據任務信息向ResourceManager申請資源(Container),并且監控任務的狀態直到運行結束。

    (4)一旦ApplicationMaster申請到了資源(Container)后,便于對應的NodeManager建立通信,要求它在獲得的Container中啟動CoarseGrainedExecutorBackend,CoarseGrainedExecutorBackend會向Application Master中的SparkContext進行注冊并且申請任務集。

    (5)Application Master中的SparkContext分配任務集給CoarseGrainedExecutorBackend執行,CoarseGrainedExecutorBackend運行任務并且向終端點DriverEndpoint匯報任務運行的狀態和進展,客戶端隨時掌握各個任務的運行狀態,從而可以在任務失敗的時候重新啟動任務

    (6)應用程序執行完畢之后,客戶端的pplication Master向ResourceManger申請注銷并且關閉本身。

    下面我們用spark-submint腳本提交Yarn-Client應用程序

    bin/spark-submit --class org.apache.spark.examples.SparkPi \ --master yarn-cluster --num-executors 3 --driver-memory 4g \ --executor-memory 2g \ --executor-cores 1 lib\spark-examples*.jar

    總結

    以上是生活随笔為你收集整理的Spark详解(十一):Spark运行架构原理分析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    主站蜘蛛池模板: 日本免费在线视频 | 插插插操操操 | 女的高潮流时喷水图片大全 | 天天尻逼| 哪里可以免费看av | 亚洲福利电影网 | 国产女人在线视频 | 国产精品成人无码专区 | 久久riav| 亚洲成人一区二区 | 麻豆一区在线 | 午夜视频大全 | 中国美女黄色一级片 | 亚洲精品无码成人 | 老太婆av | 操人视频免费 | 玖玖国产精品视频 | 中文字幕免费中文 | 午夜毛片在线观看 | 女优一区二区三区 | 成人av激情 | 操皮视频 | 香蕉国产在线视频 | 色婷婷麻豆 | 可以免费观看av | 日本视频免费观看 | 日韩美在线 | 91视频黄版| 日本在线不卡一区 | 日韩免费网 | 天天久久综合网 | 视频一区二区中文字幕 | 欧美一区二区在线看 | 天堂在线免费视频 | 国产suv精品一区二区三区 | 少妇又紧又色又爽又刺激视频 | 日本色影院 | 国产精品久久婷婷 | 艹男人的日日夜夜 | 看片一区 | 亚洲理论片 | 精品亚洲一区二区三区四区五区高 | 亚洲av无码片一区二区三区 | 91福利区| 黄色片中文字幕 | 久久看毛片| 窝窝午夜理论片影院 | 奶妈的诱惑 | 成人精品亚洲 | 亚洲精品乱码久久久久久蜜桃图片 | 国产91在线免费观看 | 热久久在线 | 丝袜一区二区三区 | 欧美日韩免费做爰视频 | 亚欧在线视频 | 日韩成人一区 | 欧日韩不卡视频 | 亚洲 激情 | 亚洲视频在线观看视频 | 男人操女人免费视频 | 欧美极品视频在线观看 | 日本成人在线网站 | 神马午夜我不卡 | 成人日韩欧美 | 蜜桃视频在线观看一区二区 | 女久久| 日本wwwxx| 久久艹国产 | 国产美女无遮挡免费 | 久久久久久天堂 | 强开小受嫩苞第一次免费视频 | 人人做 | 日韩成人av一区 | 一级片aaa| 短裙公车被强好爽h吃奶视频 | 少妇极品熟妇人妻无码 | 中文字幕在线影院 | 国产精品久久久久久久久久小说 | 欧美黄色一级片视频 | 黄色在线视频网站 | 天天插天天爱 | 淫品色影院| 久久久精品免费视频 | 永久免费看黄 | 蜜桃av久久久亚洲精品 | 欧美69精品久久久久久不卡 | 日韩av三区 | 国产精品综合网 | 波多野结衣视频观看 | 亚洲欧美日韩第一页 | 男女啪啪网站免费 | 欧美色图国产精品 | 99在线精品视频免费观看软件 | 亚洲九色 | www.欧美com | 国产精品久久欧美久久一区 | 亚洲成a人在线观看 | 91免费国产视频 | 中文字幕在线一 |