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

揭開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揭開神秘的面紗揭開面紗
提交建議
微信掃一掃,分享給好友吧。
主站蜘蛛池模板: 午夜爱爱网 | 国产欧美久久久另类精品 | 久久久久久影院 | 日本免费特黄aa毛片 | www.射.com| 久久视频精品a线视频在线观看 | 日日操天天射 | 国产在视频线精品www666 | 久久精品国产亚洲a | 四虎影视永久地址www成人 | 牛牛色婷婷在线视频播放 | 亚洲色视频 | 香蕉毛片| 福利在线影院 | 国产特黄一级一片免费 | 一级一毛片a级毛片欧美 | 日韩视频一 | 日本亚洲视频 | 精品亚洲一区二区三区 | 日本xoxo在线观看免费 | 在线一级毛片 | 92国产福利久久青青草原 | 美女撒尿毛片免费看 | 久久精品国产亚洲高清 | 日本一级特黄毛片免费视频9 | 国产a区| 免费成人黄色 | 99re这里只有精品66 | 5388国产亚洲欧美在线观看 | 欧美一级高清片欧美国产欧美 | 亚洲欧美另类久久久精品能播放的 | 欧美日韩成人 | 久久精品国产这里是免费 | 国产99视频精品一区 | 亚洲精品国产一区二区 | 欧美性网 | 亚洲欧美日韩第一页 | 国产精品自拍视频 | 99精品国产费观看视频 | 337p日本大胆欧美人术艺术6 | 狠狠的干狠狠的操 |