spark-submit使用及说明
一、命令?
1.向spark standalone以client方式提交job。
?| 1 | ./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,在提交的節(jié)點會有個main進程,來運行Driver program。如果使用--deploy-mode cluster,則Driver program直接運行在worker中。
2.向spark on yarn以client方式提交job.
?| 1 | ./spark-submit?--master?yarn?--deploy-mode?client?--class?org.apache.spark.examples.SparkPi?../lib/spark-examples-1.3.0-hadoop2.3.0.jar |
二、Spark1.0.0 應(yīng)用程序部署工具spark-submit
隨著Spark的應(yīng)用越來越廣泛,對支持多資源管理器應(yīng)用程序部署工具的需求也越來越迫切。Spark1.0.0的出現(xiàn),這個問題得到了逐步改善。從Spark1.0.0開始,Spark提供了一個容易上手的應(yīng)用程序部署工具bin/spark-submit,可以完成Spark應(yīng)用程序在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? ?? ?? ? 應(yīng)用程序包的要運行的class
??--name NAME? ?? ?? ?? ?? ???應(yīng)用程序名稱
??--jars JARS? ?? ?? ?? ?? ???用逗號隔開的driver本地jar包列表以及executor類路徑
??--py-files PY_FILES? ?? ?? ?用逗號隔開的放置在Python應(yīng)用程序PYTHONPATH上的.zip, .egg, .py文件列表
??--files FILES? ?? ?? ?? ?? ?用逗號隔開的要放置在每個executor工作目錄的文件列表
??--properties-file FILE? ?? ?設(shè)置應(yīng)用程序?qū)傩缘奈募胖梦恢?#xff0c;默認(rèn)是conf/spark-defaults.conf
??--driver-memory MEM? ?? ?? ?driver內(nèi)存大小,默認(rèn)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內(nèi)存大小,默認(rèn)1G
Spark standalone with cluster deploy mode only:
??--driver-cores NUM? ?? ?? ? driver使用內(nèi)核數(shù),默認(rèn)為1
??--supervise? ?? ?? ?? ?? ???如果設(shè)置了該參數(shù),driver失敗是會重啟
Spark standalone and Mesos only:
??--total-executor-cores NUM??executor使用的總核數(shù)
YARN-only:
??--executor-cores NUM? ?? ???每個executor使用的內(nèi)核數(shù),默認(rèn)為1
??--queue QUEUE_NAME? ?? ?? ? 提交應(yīng)用程序給哪個YARN的隊列,默認(rèn)是default隊列
??--num-executors NUM? ?? ?? ?啟動的executor數(shù)量,默認(rèn)是2個
??--archives ARCHIVES? ?? ?? ?被每個executor提取到工作目錄的檔案列表,用逗號隔開
? ?? ?關(guān)于以上spark-submit的help信息,有幾點需要強調(diào)一下:
關(guān)于--master??--deploy-mode,正常情況下,可以不需要配置--deploy-mode,使用下面的值配置--master就可以了,使用類似 --master spark://host:port --deploy-mode cluster會將driver提交給cluster,然后就將worker給kill的現(xiàn)象。
| Master URL | 含義 |
| local | 使用1個worker線程在本地運行Spark應(yīng)用程序 |
| local[K] | 使用K個worker線程在本地運行Spark應(yīng)用程序 |
local
| 使用所有剩余worker線程在本地運行Spark應(yīng)用程序 |
| spark://HOST:PORT | 連接到Spark Standalone集群,以便在該集群上運行Spark應(yīng)用程序 |
| mesos://HOST:PORT | 連接到Mesos集群,以便在該集群上運行Spark應(yīng)用程序 |
| yarn-client | 以client方式連接到Y(jié)ARN集群,集群的定位由環(huán)境變量HADOOP_CONF_DIR定義,該方式driver在client運行。 |
| yarn-cluster | 以cluster方式連接到Y(jié)ARN集群,集群的定位由環(huán)境變量HADOOP_CONF_DIR定義,該方式driver也在集群中運行。 |
如果要使用--properties-file的話,在--properties-file中定義的屬性就不必要在spark-sumbit中再定義了,比如在conf/spark-defaults.conf 定義了spark.master,就可以不使用--master了。關(guān)于Spark屬性的優(yōu)先權(quán)為:SparkConf方式 > 命令行參數(shù)方式 >文件配置方式,具體參見Spark1.0.0屬性配置。
和之前的版本不同,Spark1.0.0會將自身的jar包和--jars選項中的jar包自動傳給集群。
Spark使用下面幾種URI來處理文件的傳播:
file:// 使用file://和絕對路徑,是由driver的HTTP server來提供文件服務(wù),各個executor從driver上拉回文件。
hdfs:, http:, https:, ftp: executor直接從URL拉回文件
local: executor本地本身存在的文件,不需要拉回;也可以是通過NFS網(wǎng)絡(luò)共享的文件。
如果需要查看配置選項是從哪里來的,可以用打開--verbose選項來生成更詳細(xì)的運行信息以做參考,可以知道配置是如何加載的。建議開啟。
總結(jié)
以上是生活随笔為你收集整理的spark-submit使用及说明的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SparkContext、SparkCo
- 下一篇: Spark-submit提交任务到集群