spark-submit使用及說明

1、命令 html

注意./BnmsKpiCal-0.0.1.jar包必定要放在最後面,要否則jar包後面的參數不會生效java

1.向spark standalone以client方式提交job。python

./spark-submit --master spark://hadoop3:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.3.0-hadoop2.3.0.jar

--deploy-mode client,在提交的節點會有個main進程,來運行Driver program。若是使用--deploy-mode cluster,則Driver program直接運行在worker中。apache

2.向spark on yarn以client方式提交job.網絡

./spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi ../lib/spark-examples-1.3.0-hadoop2.3.0.jar

2、Spark1.0.0 應用程序部署工具spark-submitapp

隨着Spark的應用愈來愈普遍,對支持多資源管理器應用程序部署工具的需求也愈來愈迫切。Spark1.0.0的出現,這個問題獲得了逐步改善。從Spark1.0.0開始,Spark提供了一個容易上手的應用程序部署工具bin/spark-submit,能夠完成Spark應用程序在local、Standalone、YARN、Mesos上的快捷部署。

1:使用說明
      進入$SPARK_HOME目錄,輸入bin/spark-submit --help能夠獲得該命令的使用幫助。
hadoop@wyy :/app/hadoop/spark100$ bin/spark-submit --help
Usage: spark-submit [options] <app jar | python file> [app options]
Options:
  --master MASTER_URL         spark://host:port, mesos://host:port, yarn, or local.
  --deploy-mode DEPLOY_MODE   driver運行之處,client運行在本機,cluster運行在集羣
  --class CLASS_NAME          應用程序包的要運行的class
  --name NAME                 應用程序名稱
  --jars JARS                 用逗號隔開的driver本地jar包列表以及executor類路徑
  --py-files PY_FILES         用逗號隔開的放置在Python應用程序PYTHONPATH上的.zip, .egg, .py文件列表
  --files FILES               用逗號隔開的要放置在每一個executor工做目錄的文件列表
  --properties-file FILE      設置應用程序屬性的文件放置位置,默認是conf/spark-defaults.conf
  --driver-memory MEM         driver內存大小,默認512M
  --driver-java-options       driver的java選項
  --driver-library-path       driver的庫路徑Extra library path entries to pass to the driver
  --driver-class-path         driver的類路徑,用--jars 添加的jar包會自動包含在類路徑裏
  --executor-memory MEM       executor內存大小,默認1G

Spark standalone with cluster deploy mode only:
  --driver-cores NUM          driver使用內核數,默認爲1
  --supervise                 若是設置了該參數,driver失敗是會重啓

Spark standalone and Mesos only:
  --total-executor-cores NUM  executor使用的總核數

YARN-only:
  --executor-cores NUM        每一個executor使用的內核數,默認爲1
  --queue QUEUE_NAME          提交應用程序給哪一個YARN的隊列,默認是default隊列
  --num-executors NUM         啓動的executor數量,默認是2個
  --archives ARCHIVES         被每一個executor提取到工做目錄的檔案列表,用逗號隔開


      關於以上spark-submit的help信息,有幾點須要強調一下:工具

  • 關於--master  --deploy-mode,正常狀況下,能夠不須要配置--deploy-mode,使用下面的值配置--master就能夠了,使用相似 --master spark://host:port --deploy-mode cluster會將driver提交給cluster,而後就將worker給kill的現象。oop

Master URL 含義
local 使用1個worker線程在本地運行Spark應用程序
local[K] 使用K個worker線程在本地運行Spark應用程序
local
  •  

使用全部剩餘worker線程在本地運行Spark應用程序
spark://HOST:PORT 鏈接到Spark Standalone集羣,以便在該集羣上運行Spark應用程序
mesos://HOST:PORT 鏈接到Mesos集羣,以便在該集羣上運行Spark應用程序
yarn-client 以client方式鏈接到YARN集羣,集羣的定位由環境變量HADOOP_CONF_DIR定義,該方式driver在client運行。
yarn-cluster 以cluster方式鏈接到YARN集羣,集羣的定位由環境變量HADOOP_CONF_DIR定義,該方式driver也在集羣中運行。
  • 若是要使用--properties-file的話,在--properties-file中定義的屬性就沒必要要在spark-sumbit中再定義了,好比在conf/spark-defaults.conf 定義了spark.master,就能夠不使用--master了。關於Spark屬性的優先權爲:SparkConf方式 > 命令行參數方式 >文件配置方式,具體參見Spark1.0.0屬性配置spa

  • 和以前的版本不一樣,Spark1.0.0會將自身的jar包和--jars選項中的jar包自動傳給集羣。.net

  • Spark使用下面幾種URI來處理文件的傳播:

    • file:// 使用file://和絕對路徑,是由driver的HTTP server來提供文件服務,各個executor從driver上拉回文件。

    • hdfs:, http:, https:, ftp: executor直接從URL拉回文件

    • local: executor本地自己存在的文件,不須要拉回;也能夠是經過NFS網絡共享的文件。

  • 若是須要查看配置選項是從哪裏來的,能夠用打開--verbose選項來生成更詳細的運行信息以作參考,能夠知道配置是如何加載的。建議開啓。

 

轉載:Spark1.0.0 應用程序部署工具spark-submit

相關文章
相關標籤/搜索