spark筆記之Spark運行架構
阿新 • • 發佈:2018-08-28
示意圖 exe 使用 sta yarn 釋放 構建 遠程 work Spark運行基本流程
Spark運行基本流程參見下面示意圖:
1) 構建Spark Application的運行環境(啟動SparkContext),SparkContext向資源管理器(可以是Standalone、Mesos或YARN)註冊並申請運行Executor資源;
2) 資源管理器分配Executor資源並啟動Executor,Executor運行情況將隨著心跳發送到資源管理器上;
3) SparkContext構建成DAG圖,將DAG圖分解成Stage,並把Taskset發送給Task Scheduler。Executor向SparkContext申請Task,Task Scheduler將Task發放給Executor運行同時SparkContext將應用程序代碼發放給Executor。
4) Task在Executor上運行,運行完畢釋放所有資源。
Spark運行架構特點
Spark運行架構特點:
①每個Application獲取專屬的executor進程,該進程在Application期間一直駐留,並以多線程方式運行tasks。
②Spark任務與資源管理器無關,只要能夠獲取executor進程,並能保持相互通信就可以了。
③提交SparkContext的Client應該靠近Worker節點(運行Executor的節點),最好是在同一個Rack裏,因為Spark程序運行過程中SparkContext和Executor之間有大量的信息交換;如果想在遠程集群中運行,最好使用RPC將SparkContext提交給集群,不要遠離Worker運行SparkContext。
④Task采用了數據本地性和推測執行的優化機制。
Spark運行基本流程參見下面示意圖:
1) 構建Spark Application的運行環境(啟動SparkContext),SparkContext向資源管理器(可以是Standalone、Mesos或YARN)註冊並申請運行Executor資源;
2) 資源管理器分配Executor資源並啟動Executor,Executor運行情況將隨著心跳發送到資源管理器上;
3) SparkContext構建成DAG圖,將DAG圖分解成Stage,並把Taskset發送給Task Scheduler。Executor向SparkContext申請Task,Task Scheduler將Task發放給Executor運行同時SparkContext將應用程序代碼發放給Executor。
Spark運行架構特點:
①每個Application獲取專屬的executor進程,該進程在Application期間一直駐留,並以多線程方式運行tasks。
②Spark任務與資源管理器無關,只要能夠獲取executor進程,並能保持相互通信就可以了。
③提交SparkContext的Client應該靠近Worker節點(運行Executor的節點),最好是在同一個Rack裏,因為Spark程序運行過程中SparkContext和Executor之間有大量的信息交換;如果想在遠程集群中運行,最好使用RPC將SparkContext提交給集群,不要遠離Worker運行SparkContext。
spark筆記之Spark運行架構