天天看點

Spark 基于 Standalone 模式送出任務

1.Standalone-client 送出任務方式

送出指令:

[root@node4 bin]# ./spark-submit --master spark://node1:7077 --class org.apache.spark.examples.SparkPi /opt/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar 100
[root@node4 bin]# ./spark-submit --master spark://node1:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi /opt/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar 100
#兩種送出都行      

執行原理圖解

Spark 基于 Standalone 模式送出任務

執行流程:

  1. client 模式送出任務後,會在用戶端啟動 Driver 程序。
  2. Driver 會向 Master 申請啟動 Application 啟動的資源。
  3. Master 收到請求之後會在對應的 Worker 節點上啟動 Executor
  4. Executor 啟動之後,會注冊給 Driver 端,Driver 掌握一批計算 資源。
  5. Driver 端将 task 發送到 worker 端執行。worker 将 task 執行結 果傳回到 Driver 端。

特點:當在用戶端送出多個Spark application時,每個application都會啟動一個Driver

總結:client 模式适用于測試調試程式。Driver 程序是在用戶端啟動的,這裡的客 戶端就是指送出應用程式的目前節點。在 Driver 端可以看到 task 執行的情 況。生産環境下不能使用 client 模式,是因為:假設要送出 100 個,application 到叢集運作,Driver 每次都會在 client 端啟動,那麼就會導緻 用戶端 100 次網卡流量暴增的問題。client 模式适用于程式測試,不适用 于生産環境,在用戶端可以看到 task 的執行和結果

2.Standalone-cluster 送出任務方式

送出指令

[root@node4 bin]# ./spark-submit --master spark://node1:7077 --deploy-mode cluster --class org.apache.spark.examples.SparkPi /opt/spark-2.3.1/examples/jars/spark-examples_2.11-2.3.1.jar 100      

執行原理圖解

Spark 基于 Standalone 模式送出任務

執行流程

  1. cluster 模式送出應用程式後,會向 Master 請求啟動 Driver.
  2. Master 接受請求,随機在叢集一台節點啟動 Driver 程序。
  3. Driver 啟動後為目前的應用程式申請資源。
  4. Driver 端發送 task 到 worker 節點上執行。
  5. worker 将執行情況和執行結果傳回給 Driver 端。
  • Driver 負責應用程式資源的申請。
  • 任務的分發。
  • 結果的回收。
  • 監控 task 執行情況。

繼續閱讀