spark源碼分析任務(wù)流程

贅述

本系列的文章將會從spark源碼的角度來分析spark任務(wù)提交集群到運行結(jié)束這個過程的處理邏輯,所以對Spark編程的熟練度要求比較高浩淘。

Spark是基于內(nèi)存的大數(shù)據(jù)處理計算引擎捌朴。 使用 Scala語言實現(xiàn),可以像操作本地集合對象一樣輕松地操作分布式數(shù)據(jù)集张抄,其將 Scala 用作其應(yīng)用程序框架砂蔽,同時支持java,python開發(fā)。這篇文章主要對spark的任務(wù)流程做一個簡單的深度解析署惯。

正解

下面將從某一臺提交spark應(yīng)用的機器講解整個任務(wù)流程左驾,

1、spark任務(wù)提交

首先通過azkaban等任務(wù)調(diào)度平臺(spark-submit)將spark的jar包(application)提交到集群運行后,這時會啟動一個Driver進程(client和cluster的Driver位置是不同的)诡右,Driver進程會執(zhí)行application應(yīng)用程序安岂。

2、SparkContext初始化

spark主類的代碼首先是構(gòu)造SparkConf帆吻,再構(gòu)造SparkContext,如圖:

sparkContext初始化域那,最重要的就是構(gòu)造DAGScheduler和TaskScheduler。構(gòu)建TaskScheduler之后猜煮,TaskScheduler通過它對應(yīng)的一個后臺進程琉雳,去負(fù)責(zé)連接master,向master申請注冊application友瘤,master接收到application注冊的請求之后,會使用資源調(diào)度算法檐束,在spark集群的worker上辫秧,為這個application啟動多個Executor。executor啟動之后會自己反向注冊到TaskScheduler被丧,Executor全部反向注冊到Driver之后盟戏,Driver會結(jié)束SparkConctext初始化,繼續(xù)執(zhí)行我們自己的代碼甥桂。

3柿究、構(gòu)建job及其劃分

Spark代碼每觸發(fā)一次action就會創(chuàng)建一個job,DAGScheduler將Job劃分成由Stage組成的DAG后黄选,就根據(jù)Stage的具體類型來生成ShuffleMapTask和ResultTask蝇摸,然后使用TaskSet對其進行封裝,最后調(diào)用TaskScheduler的submitTasks方法提交具體的TaskSet办陷。TaskScheduler把taskset里的每一個task提交到executor上執(zhí)行貌夕。executor每接收到一個Task,都會用TaskRunner來封裝task民镜,然后從線程池里取出一個線程啡专,執(zhí)行這個task。TaskRunner把spark代碼的算子或者函數(shù)拷貝制圈、反序列化们童,然后執(zhí)行task。


所以鲸鹦,整個spark應(yīng)用程序的執(zhí)行慧库,就是stage分批次作為taskset提交到executor執(zhí)行,每個task針對RDD的一個partition亥鬓,執(zhí)行我們定義的算子和函數(shù)完沪,以此類推,直到所有的操作執(zhí)行結(jié)束。

具體的細(xì)節(jié)算法覆积,會在后續(xù)的文章中詳細(xì)解讀

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末听皿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子宽档,更是在濱河造成了極大的恐慌尉姨,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吗冤,死亡現(xiàn)場離奇詭異又厉,居然都是意外死亡,警方通過查閱死者的電腦和手機椎瘟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進店門覆致,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人肺蔚,你說我怎么就攤上這事煌妈。” “怎么了宣羊?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵璧诵,是天一觀的道長。 經(jīng)常有香客問我仇冯,道長之宿,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任苛坚,我火速辦了婚禮比被,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘炕婶。我一直安慰自己姐赡,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布柠掂。 她就那樣靜靜地躺著项滑,像睡著了一般。 火紅的嫁衣襯著肌膚如雪涯贞。 梳的紋絲不亂的頭發(fā)上枪狂,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天,我揣著相機與錄音宋渔,去河邊找鬼州疾。 笑死,一個胖子當(dāng)著我的面吹牛皇拣,可吹牛的內(nèi)容都是我干的严蓖。 我是一名探鬼主播薄嫡,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼颗胡!你這毒婦竟也來了毫深?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤毒姨,失蹤者是張志新(化名)和其女友劉穎哑蔫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體弧呐,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡闸迷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了俘枫。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片腥沽。...
    茶點故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖鸠蚪,靈堂內(nèi)的尸體忽然破棺而出巡球,到底是詐尸還是另有隱情,我是刑警寧澤邓嘹,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站险胰,受9級特大地震影響汹押,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜起便,卻給世界環(huán)境...
    茶點故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一棚贾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧榆综,春花似錦妙痹、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至判沟,卻和暖如春耿芹,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挪哄。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工吧秕, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迹炼。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓砸彬,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子砂碉,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • Apache Spark 是專為大規(guī)模數(shù)據(jù)處理而設(shè)計的快速通用的計算引擎蛀蜜。Spark是UC Berkeley AM...
    大佛愛讀書閱讀 2,828評論 0 20
  • Apache Spark是一個圍繞速度、易用性和復(fù)雜分析構(gòu)建的大數(shù)據(jù)處理框架绽淘,最初在2009年由加州大學(xué)伯克利分校...
    三萬_chenbing閱讀 638評論 0 5
  • Spark是什么 Spark是基于HDFS等分布式存儲之上的數(shù)據(jù)處理分析框架涵防,它擅長批量數(shù)據(jù)處理,處理流工作負(fù)載沪铭,...
    奔跑地蝸牛閱讀 933評論 0 0
  • spark-submit的時候如何引入外部jar包 在通過spark-submit提交任務(wù)時壮池,可以通過添加配置參數(shù)...
    博弈史密斯閱讀 2,742評論 1 14
  • 故鄉(xiāng)在湖南常德,舊稱武陵杀怠,陶淵明筆下的世外桃源就在轄內(nèi)椰憋。 前不久,帶著女兒禾回了趟故鄉(xiāng)赔退,對她來說橙依,...
    照見者閱讀 247評論 0 0