摘要:

  1. 基本概念

    1.1   Application

    1.2    Job

    1.3   Stage

    1.4   TaskSet

    1.5   Task

    1.6   DAG

      2.相關(guān)的類

    2.1DAGScheduler

    2.2ActiveJob

    2.3Stage

    2.4Task

  3.運行方式

  4.工作流程

    4.1劃分Stage

    4.2生成Job,提交Stage

    4.3任務(wù)集的提交

    4.4任務(wù)作業(yè)完成狀態(tài)的監(jiān)控

    4.5任務(wù)結(jié)果的獲取

內(nèi)容總結(jié):

  1. 基本概念

  首先,我們先列出任務(wù)調(diào)度涉及的相關(guān)概念:

  •   Application:由多個作業(yè)組成的Spark應(yīng)用程序

  •   Job:由RDD Action產(chǎn)生的多個stage所組成的一次計算操作

  •   Stage:任務(wù)集所對應(yīng)的調(diào)度階段

  •   TaskSet:這是一組彼此之間有關(guān)聯(lián),但是互相不存在shuffle依賴的任務(wù)所組成的任務(wù)集

  •   Task:單個分區(qū)數(shù)據(jù)集上的處理流程單元

  •   DAG:有向無環(huán)圖

  2. 相關(guān)的類:

  

   2.1作業(yè)調(diào)度(DAGScheduler)

   DAGScheduler 是基于stage的高級調(diào)度(邏輯調(diào)度),這個調(diào)度會計算每個Job對應(yīng)的stage的DAG。然后然后以TaskSet的形式提交stage到底層的TaskScheduler.

   萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

  Spark的stages 是以shuffle為邊界切分RDD圖來創(chuàng)建的。具有窄依賴(例:map(),filter())的操作會在對應(yīng)stage的一系列任務(wù)中管道式的運行,但是具有寬依賴的操作則需要多個stage.最后所有的stage之間將只有shuffle依賴關(guān)系。

  實際上這些操作發(fā)生在RDD.compute(),在各個RDD的實現(xiàn)上,比如MappedRDD,FilteredRDD等

   萬碼學堂,電腦培訓,計算機培訓,Java培訓,JavaEE開發(fā)培訓,青島軟件培訓,軟件工程師培訓

  

  下面提到還一些概念:

    網(wǎng)友評論