Spark運行在yarn集羣上的兩種提交方式

Spark集羣簡單介紹

如前面幾篇博客介紹的
Spark集羣分爲四種:

  • local
  • stand alone
  • yarn
  • mesos

這裏我們就拿yarn來介紹。

yarn集羣的兩種提交方式

首先spark跑在yarn集羣上,必須要開啓HDFS,因爲包要上傳到HDFS上,但是standalone集羣是不必開啓的,因爲要是開啓的話,就會有兩套spark集羣,當你提交Application時就可能出現資源搶奪問題。

client

standalone集羣和yarn集羣提交命令的比較:

  1. Stand alone:spark-submit --master spark://node01:7077
  2. yarn:spark-submit --master yarn-client --class org.apache.spark.examples.SparkPi …/lib/spark-examples-1.6.3-hadoop2.6.0.jar 10

執行原理

執行流程

  1. 客戶端提交一個Application,在客戶端啓動一個Driver進程

  2. Driver進程會向RS(ResourceManager)發送請求,啓動AM(ApplicationMaster)的資源。

  3. RS收到請求,隨機選擇一臺NM(NodeManager)啓動AM。這裏的NM相當於Standalone中的Worker節點。

  4. AM啓動後,會向RS請求一批container資源,用於啓動Executor

  5. RS會找到一批NM返回給AM,用於啓動Executor。

  6. AM會向NM發送命令啓動Executor。

  7. Executor啓動後,會反向註冊給Driver,Driver發送task到Executor,執行情況和結果返回給Driver端。

cluster

提交命令(兩種)

./spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi …/lib/spark-examples-1.6.0-hadoop2.6.0.jar 100

./spark-submit --master yarn-cluster --class org.apache.spark.examples.SparkPi …/lib/spark-examples-1.6.0-hadoop2.6.0.jar 100

執行原理

執行流程

  1. 客戶機提交Application應用程序,發送請求到RS(ResourceManager),請求啓動AM(ApplicationMaster)。
  2. RS收到請求後隨機在一臺NM(NodeManager)上啓動AM(相當於Driver端)。
  3. AM啓動,AM發送請求到RS,請求一批container用於啓動Executor。
  4. RS返回一批NM節點給AM。
  5. AM連接到NM,發送請求到NM啓動Executor。
  6. Executor反向註冊到AM所在的節點的Driver。Driver發送task到Executor。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章