Spark作业提交流程
1.spark-submit 提交代碼,執行 new SparkContext(),在 SparkContext 里構
造 DAGScheduler 和 TaskScheduler。
2.TaskScheduler 會通過后臺的一個進程,連接 Master,向 Master 注冊 Application。
Master 接收到 Application 請求后,會使用相應的資源調度算法,在 Worker 上為這個
Application 啟動多個 Executer。
3.Executor 啟動后,會自己反向注冊到 TaskScheduler 中。 所有 Executor 都注冊到 Driver
上之后,SparkContext 結束初始化,接下來往下執行我們自己的代碼。
4.每執行到一個 Action,就會創建一個 Job。Job 會提交給 DAGScheduler。
5.DAGScheduler 會將 Job劃分為多個 stage,然后每個 stage 創建一個 TaskSet。
6.TaskScheduler 會把每一個 TaskSet 里的 Task,提交到 Executor 上執行。
7.Executor 上有線程池,每接收到一個 Task,就用 TaskRunner 封裝,然后從線程池里取出一
個線程執行這個 task。(TaskRunner 將我們編寫的代碼,拷貝,反序列化,執行 Task,每個 Task
執行 RDD 里的一個 partition)
總結
以上是生活随笔為你收集整理的Spark作业提交流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: BPE, WordPiece, Sent
- 下一篇: android如何编译lame,ndk编