一旦用户的应用打包后,就可以使用bin/spark-submit脚本来启动,此脚本就会为Spark和它的依赖安排配置环境变量,还支持不同的集群管理和部署模式:
1
2
3
4
5
6
7
8
|
./bin/spark-submit \
--
class
<main-
class
>
--master <master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
<application-jar> \
[application-arguments]
|
一些常用的命令如下:
1
2
3
4
5
6
7
8
9
10
11
|
.--
class
:应用程序的入口(如:org.apache.spark.examples.SparkPi)
.--master:集群的master URL(如: spark:
//23.195.26.187:7077)
.--deploy-mode:选择集群模式来部署Driver进程或本地模式作为客户端
--conf:通过key=value格式来设置Spark配置文件属性,当value值包含格时,用引号引起key=value(”key=value“)
--application-jar:包含应用程序和应用程序所依赖包的路径,URL在集群中必须是全局可见的,例如:hdfs:
//或者file://路径必须在节点上也是存在的
--application-arguments:将参数传递在主要的main方法中
|
本地模式:
1
2
3
4
5
|
./bin/spark-submit \
--
class
org.apache.spark.examples.SparkPi \
--master local[
8
] \
/path/to/examples.jar \
100
|
Spark独立部署模式(Client):
1
2
3
4
5
6
7
8
|
./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
|
Spark独立部署模式并监视(Cluster)
1
2
3
4
5
6
7
8
9
|
./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
|
Yarn部署模式:
1
2
3
4
5
6
7
8
|
export HADOOP_CONF_DIR=XXX
./bin/spark-submit \
--
class
org.apache.spark.examples.SparkPi \
--master yarn-cluster \ # can also be `yarn-client`
for
client mode
--executor-memory 20G \
--num-executors
50
\
/path/to/examples.jar \
1000
|
Master URLs
通过如下方法将Master URL传递给Spark
local | 单个本地工作线程程运行Spark |
local[K] | K个本地线程运行Spark(K为你机器的内核数) |
local[*] | 根据你机器的内核数据来启动多个线程运行Spark |
spark://HOST:PORT | 连接Spark集群的master,端口要和配置文件中的相同,默认为7077 |
mesos://HOST:PORT | 连接Mesos集群,端口默认为5055 |
yarn-client | 在client模式下连接YARN集群,集群的位置能在HADOOP_CONF_DIR 或YARN_CONF_DIR找到 |
yarn-cluster | 在集群械下连接YARN集群,HADOOP_CONF_DIR 或YARN_CONF_DIR找到 |
分类:
Spark