欧美中文字幕第一页-欧美中文字幕一区-欧美中文字幕一区二区三区-欧美中文字幕在线-欧美中文字幕在线播放-欧美中文字幕在线视频

揭開Spark Streaming神秘面紗④ – job 的提交與執行

我是創始人李巖:很抱歉!給自己產品做個廣告,點擊進來看看。  

揭開Spark Streaming神秘面紗④ – job 的提交與執行

作者:牛肉圓粉不加蔥

本文由 簡書 牛肉圓粉不加蔥 授權發布,版權所有歸作者,轉載請聯系作者!

前文揭開 Spark Streaming神秘面紗③ – 動態生成 job 我們分析了 JobScheduler 是如何動態為每個 batch生成 jobs,本文將說明這些生成的 jobs 是如何被提交的。

在 JobScheduler 生成某個 batch 對應的 Seq[Job] 之后,會將 batch 及 Seq[Job] 封裝成一個 JobSet 對象,JobSet 持有某個 batch 內所有的 jobs,并記錄各個 job 的運行狀態。

之后,調用JobScheduler#submitJobSet(jobSet: JobSet)來提交 jobs,在該函數中,除了一些狀態更新,主要任務就是執行

揭開Spark Streaming神秘面紗④ – job 的提交與執行

即,對于 jobSet 中的每一個 job,執行jobExecutor.execute(new JobHandler(job)),要搞懂這行代碼干了什么,就必須了解 JobHandler 及 jobExecutor。

JobHandler

JobHandler 繼承了 Runnable,為了說明與 job 的關系,其精簡后的實現如下:

揭開Spark Streaming神秘面紗④ – job 的提交與執行

JobHandler#run 方法主要執行了 job.run(),該方法最終將調用到 揭開Spark Streaming神秘面紗③ – 動態生成 job 中的『生成該 batch 對應的 jobs的Step2 定義的 jobFunc』,jonFunc 將提交對應 RDD DAG 定義的 job。

JobExecutor

知道了 JobHandler 是用來執行 job 的,那么 JobHandler 將在哪里執行 job 呢?

答案是jobExecutor,jobExecutor為 JobScheduler 成員,是一個線程池,在JobScheduler 主構造函數中創建,如下:

揭開Spark Streaming神秘面紗④ – job 的提交與執行

JobHandler 將最終在 線程池jobExecutor 的線程中被調用,jobExecutor的線程數可通過spark.streaming.concurrentJobs配置,默認為1。若配置多個線程,就能讓多個 job 同時運行,若只有一個線程,那么同一時刻只能有一個 job 運行。

以上,即 jobs 被執行的邏輯。

原文>>>

End.

隨意打賞

spark streamingstreaming揭開神秘的面紗揭開面紗
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 精品午夜寂寞黄网站在线 | 日韩欧美色综合 | 天天爽天天干天天操 | 欧美精品国产一区二区三区 | 国产精品久久久视频 | 亚洲国产成a人v在线观看 | 伊人久久精品午夜 | 91九色蝌蚪 | 国产a免费 | 国产中文字幕在线免费观看 | 美国一级毛片aa | 亚洲婷婷网 | 国内精品免费久久久久妲己 | 欧美另类高清xxxxx | 九九热免费在线观看 | 亚洲人妖女同在线播放 | 欧美成人精品一区二区三区 | vr欧美乱强伦xxxxx | 日本亚洲精品成人 | 欧美日韩在线成人免费 | 国产人成激情视频在线观看 | 久久综合在线 | 久久精品www| 日韩图区 | 四虎高清在线精品免费观看 | 亚洲高清国产一线久久 | 欧美国产日韩精品 | 欧美国产日韩精品 | 日韩高清在线日韩大片观看网址 | 欧美日韩亚洲综合久久久 | 色综合一区 | 欧美日韩成人午夜免费 | 国产日产亚洲精品 | 狠狠干b | 成人精品视频一区二区在线 | 在线 色 | 亚洲欧美一区二区三区麻豆 | 国内精品视频一区二区八戒 | 久久不卡视频 | 午夜看一级特黄a大片黑 | 天天天天天天干 |