更新時間:2018年09月11日16時01分 來源:傳智播客 瀏覽次數(shù):
3. Spark運行基本流程
Spark運行基本流程參見下面示意圖:
1) 構(gòu)建Spark Application的運行環(huán)境(啟動SparkContext),SparkContext向資源管理器(可以是Standalone、Mesos或YARN)注冊并申請運行Executor資源;
2) 資源管理器分配Executor資源并啟動Executor,Executor運行情況將隨著心跳發(fā)送到資源管理器上;
3) SparkContext構(gòu)建成DAG圖,將DAG圖分解成Stage,并把Taskset發(fā)送給Task Scheduler。Executor向SparkContext申請Task,Task Scheduler將Task發(fā)放給Executor運行同時SparkContext將應(yīng)用程序代碼發(fā)放給Executor。
4) Task在Executor上運行,運行完畢釋放所有資源。
4. Spark運行架構(gòu)特點
Spark運行架構(gòu)特點:
?、倜總€Application獲取專屬的executor進程,該進程在Application期間一直駐留,并以多線程方式運行tasks。
?、赟park任務(wù)與資源管理器無關(guān),只要能夠獲取executor進程,并能保持相互通信就可以了。
?、厶峤籗parkContext的Client應(yīng)該靠近Worker節(jié)點(運行Executor的節(jié)點),最好是在同一個Rack里,因為Spark程序運行過程中SparkContext和Executor之間有大量的信息交換;如果想在遠程集群中運行,最好使用RPC將SparkContext提交給集群,不要遠離Worker運行SparkContext。
④Task采用了數(shù)據(jù)本地性和推測執(zhí)行的優(yōu)化機制。
作者:傳智播客云計算大數(shù)據(jù)培訓學院
首發(fā):http://cloud.itcast.cn