1、参数详解。
参数名 | 参数说明 |
–master | master 的地址,提交任务到哪里执行,例如 spark://host:port, yarn, local |
–deploy-mode | 在本地 (client) 启动 driver 或在 cluster 上启动,默认是 client |
–class | 应用程序的主类,仅针对 java 或 scala 应用 |
–name | 应用程序的名称 |
–jars | 用逗号分隔的本地 jar 包,设置后,这些 jar 将包含在 driver 和 executor 的 classpath 下 |
–packages | 包含在driver 和executor 的 classpath 中的 jar 的 maven 坐标 |
–exclude-packages | 为了避免冲突 而指定不包含的 package |
–repositories | 远程 repository |
–conf PROP=VALUE | 指定 spark 配置属性的值,
例如 -conf spark.executor.extraJavaOptions=”-XX:MaxPermSize=256m” |
–properties-file | 加载的配置文件,默认为 conf/spark-defaults.conf |
–driver-memory | Driver内存,默认 1G |
–driver-java-options | 传给 driver 的额外的 Java 选项 |
–driver-library-path | 传给 driver 的额外的库路径 |
–driver-class-path | 传给 driver 的额外的类路径 |
–driver-cores | Driver 的核数,默认是1。在 yarn 或者 standalone 下使用 |
–executor-memory | 每个 executor 的内存,默认是1G |
–total-executor-cores | 所有 executor 总共的核数。仅仅在 mesos 或者 standalone 下使用 |
–num-executors | 启动的 executor 数量。默认为2。在 yarn 下使用 |
–executor-core | 每个 executor 的核数。在yarn或者standalone下使用 |
2、传递给Spark的master url可以是以下任意格式之一:
master URL | 意义 |
---|---|
local | 使用1个worker线程本地运行Spark(即完全没有并行化) |
local[K] | 使用K个worker线程本地运行Spark(最好将K设置为机器的CPU核数) |
local[*] | 根据机器的CPU逻辑核数,尽可能多地使用Worker线程 |
spark://HOST:PORT | 连接到给定的Spark Standalone集群的Master,此端口必须是Master配置的端口,默认为7077 |
mesos://HOST:PORT | 连接到给定的Mesos集群的Master,此端口必须是Master配置的端口,默认为5050。若Mesos集群使用ZooKeeper,则master URL使用mesos://zk://…… |
yarn-client | 以client模式连接到YARN集群,集群位置将通过HADOOP_CONF_DIR环境变量获得 |
yarn-cluster | 以cluster模式连接到YARN集群,集群位置将通过HADOOP_CONF_DIR环境变量获得 |
3、常用参数。
–class:应用程序的入口点(例如,org.apache.spark.examples.SparkPi)
–master:集群的master URL(例如,spark://localhost:7077)
–deploy-mode:将driver部署到worker节点(cluster模式)或者作为外部客户端部署到本地(client模式),默认情况下是client模式
–-conf:用key=value格式强制指定Spark配置属性,用引号括起来
–application-jar:包含应用程序和所有依赖的jar包的路径,路径必须是在集群中是全局可见的,例如,hdfs://路径或者file://路径
–application-arguments:传递给主类中main函数的参数
4、例子。注意Windows测试环境与Linux正式环境的文件路径差异[2022-02-19]。
spark-submit –class spark.SimpleApp –master local c:\spark-0.0.1-SNAPSHOT.jar