Standalone
需要通过bin/spark-submit来提交
必需参数 --class --master举例如下:
/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://master01:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/examples/jars/spark-
examples_2.11-2.1.1.jar \
100
参数说明:
--master spark://master01:7077 指定 Master 的地址
--executor-memory 1G 指定每个 executor 可用内存为 1G
--total-executor-cores 2 指定每个 executor 使用的 cup 核数为 2 个
该算法是利用蒙特·卡罗算法求 PI
yarn
/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master yarn \
--deploy-mode client \
/home/bigdata/hadoop/spark-2.1.1-bin-hadoop2.7/examples/jars/spark-
examples_2.11-2.1.1.jar \
100
一旦打包好,就可以使用 bin/spark-submit 脚本启动应用了. 这个脚本负责设置 spark 使用的 classpath 和依赖,支持不同类型的集群管理器和发布模式
一些常用选项:
1) --class: 你的应用的启动类 (如 org.apache.spark.examples.SparkPi)
2) --master: 集群的 master URL (如 spark://23.195.26.187:7077)
3) --deploy-mode: 是否发布你的驱动到 worker 节点(cluster) 或者作为一个本地客户端 (client) (default: client)*
4) --conf: 任意的 Spark 配置属性, 格式 key=value. 如果值包含空格,可以加引号“key=value”. 缺省的 Spark 配置
5) application-jar: 打包好的应用 jar,包含依赖. 这个 URL 在集群中全局可见。比如 hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的 path都包含同样的 jar.
6) application-arguments: 传给 main()方法的参数:
查看 Spark-submit 全部参数
所有的提交方式
local | 本地以一个 worker 线程运行(例如非并行的情况). |
local[k] | 本地以 K worker 线程 (理想情况下, K 设置为你机器的 CPU 核数). |
local[*] | 本地以本机同样核数的线程运行. |
spark://HOST:PORT | 连接到指定的 Spark standalone cluster master. 端口是你的 master 集群配置的端口,缺省值为 7077. |
mesos://HOST:PORT | 连接到指定的 Mesos 集群. Port 是你配置的 mesos 端口, 缺省是 5050. 或者如果 Mesos 使用 ZOoKeeper,格式为 mesos://zk://.... |
yarn-client | 以 client 模式连接到 YARN cluster. 集群的位置基于HADOOP_CONF_DIR 变量找到. |
yarn-cluster | 以 cluster 模式连接到 YARN cluster. 集群的位置基于HADOOP_CONF_DIR 变量找到. |