spark home的bin目录下有个spark-submit脚本是用来在集群模式下启动应用的。通过统一的接口方式可用于所有spark支持的集群管理器,而不需要特别为每种进行格外的配置。
如果你的代码依赖于其它项目,你需要和你的应用打包在一起,以便于分发代码到集群中。对于python应用,可以使用spark-submit的 --py-files参数增加.py,.zip 或者.egg文件,这样可以和你的应用一起分发到集群中。
如下所示启动脚本:
./bin/spark-submit
–class
–master
–deploy-mode
–conf =
… # other options
[application-arguments]
其中:
–class: 应用的入口类 (e.g. org.apache.spark.examples.SparkPi)
–master: 集群主节点url地址, (e.g. spark://23.195.26.187:7077)
–deploy-mode: 默认client模式,即driver运行于当前提交节点,或者cluster模式,dirver部署在某个工作节点
–conf: spark配置属性
deng
./bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master local[8]
/path/to/examples.jar
100
./bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master spark://207.184.161.138:7077
–executor-memory 20G
–total-executor-cores 100
/path/to/examples.jar
1000
./bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master spark://207.184.161.138:7077
–deploy-mode cluster
–supervise
–executor-memory 20G
–total-executor-cores 100
/path/to/examples.jar
1000
export HADOOP_CONF_DIR=XXX
./bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master yarn
–deploy-mode cluster \ # can be client for client mode
–executor-memory 20G
–num-executors 50
/path/to/examples.jar
1000
./bin/spark-submit
–master spark://207.184.161.138:7077
examples/src/main/python/pi.py
1000
./bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master mesos://207.184.161.138:7077
–deploy-mode cluster
–supervise
–executor-memory 20G
–total-executor-cores 100
http://path/to/examples.jar
1000
./bin/spark-submit
–class org.apache.spark.examples.SparkPi
–master k8s://xx.yy.zz.ww:443
–deploy-mode cluster
–executor-memory 20G
–num-executors 50
http://path/to/examples.jar
1000
Master URLs可以以以下集中方式
Master URL Meaning
local 以一个线程运行本地spark程序
local[K] 以K个工作线程在本地运行spark程序
local[K,F] 以K个工作线程,最多F错误在本地运行spark程序
local[] 以逻辑上尽可能最多的工作线程运行spark程序。
local[,F] 逻辑上尽可能最多的工作线程,同时F 最大错误运行spark程序。.
spark://HOST:PORT 以配置连接spark集群的master 的ip 和端口运行spark程序
spark://HOST1:PORT1,HOST2:PORT2 以高可用的方式连接spark 集群使用
mesos://HOST:PORT meoss集群模式运行
yarn 基于 HADOOP_CONF_DIR 或者YARN_CONF_DIR 的yarn配置运行yarn集群模式.
k8s://HOST:PORT k8s模式运行.
Loading Configuration from a File