1. 程式人生 > >spark筆記之Spark運行架構

spark筆記之Spark運行架構

示意圖 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筆記之Spark運行架構