溫馨提示×

溫馨提示×

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

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

如何解析Spark集群和任務(wù)執(zhí)行過程

發(fā)布時間:2021-12-17 09:23:02 來源:億速云 閱讀:118 作者:柒染 欄目:大數(shù)據(jù)

本篇文章給大家分享的是有關(guān)如何解析Spark集群和任務(wù)執(zhí)行過程,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

Spark集群組件

如何解析Spark集群和任務(wù)執(zhí)行過程  
Spark是典型的Master/Slave架構(gòu),集群主要包括以下4個組件:
Driver:Spark框架中的驅(qū)動器,運(yùn)行用戶編寫Application 的main()函數(shù)。類比于MapReduce的MRAppmaster
Master:主節(jié)點(diǎn),控制整個集群,監(jiān)控worker。在Yarn模式中為全局資源管理器
Worker:從節(jié)點(diǎn),負(fù)責(zé)控制計(jì)算節(jié)點(diǎn),啟動Executor。類比Yarn中的節(jié)點(diǎn)資源管理器
Executor:運(yùn)算任務(wù)執(zhí)行器,運(yùn)行在worker節(jié)點(diǎn)上的一個進(jìn)程。類似于MapReduce中的MapTask和ReduceTask

Spark基本執(zhí)行流程

以StandAlone運(yùn)行模式為例:

如何解析Spark集群和任務(wù)執(zhí)行過程


 1.客戶端啟動應(yīng)用程序及Driver相關(guān)工作,向Master提交任務(wù)申請資源
2.Master給Worker分配資源,通知worker啟動executor

3.Worker啟動Executor,Worker創(chuàng)建ExecutorRunner線程,ExecutorRunner會啟動ExecutorBackend進(jìn)程,Executor和Driver進(jìn)行通信(任務(wù)分發(fā)監(jiān)聽等)

4.ExecutorBackend啟動后向Driver的SchedulerBackend注冊,SchedulerBackend將任務(wù)提交到Executor上運(yùn)行
5.所有Stage都完成后作業(yè)結(jié)束

筆者強(qiáng)調(diào):

  1. Driver端進(jìn)行的操作

    1. SparkContext構(gòu)建DAG圖

    2. DAGScheduler將任務(wù)劃分為stage、為需要處理的分區(qū)生成TaskSet

    3. TaskScheduler進(jìn)行task下發(fā)

    4. SchedulerBackend將任務(wù)提交到Executor上運(yùn)行
  2. 資源劃分的一般規(guī)則

    1. 獲取所有worker上的資源

    2. 按照資源大小進(jìn)行排序

    3. 按照排序后的順序拿取資源

      1. 輪詢

      2. 優(yōu)先拿資源多的
  3. Spark不同運(yùn)行模式任務(wù)調(diào)度器是不同的,如Yarn模式:yarn-cluster模式為YarnClusterScheduler,yarn-client模式為YarnClientClusterScheduler

以上就是如何解析Spark集群和任務(wù)執(zhí)行過程,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降?。希望你能通過這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI