用于提交spark jar
Usage: spark-submit [option] <app jar | python file> [app option]
Options:
--master Master_URL | spark://host:port, mesos://host:port,yarn,or local |
--deploy-mode DEPLOY_MODE | driver运行之处,client运行在本机,cluster运行在集群 |
--class CLASS_NAME | 应用程序包的要运行的class |
--name NAME | 应用程序名称 |
--jars JARS | 用逗号隔开的driver本地jar包列表以及executor类路径 |
--py-files PY_FILES | 用逗号隔开的放在python应用程序PYTHON PATH的.zip,.py文件列表 |
--packages | 包含在driver 和executor 的 classpath 中的 jar 的 maven 坐标 |
--exclude-packages | 为了避免冲突 而指定不包含的 package |
--repositories | 远程 repository |
-conf PROP=VALUE | 指定 spark 配置属性的值, 例如 -conf spark.executor.extraJavaOptions="-XX:MaxPermSize=256m" |
--files Files | 用逗号隔开的要放置在每个executor工作目录的文件列表 |
--properties-file FILE | 设置应用程序属性的文件放置位置,默认是conf/spark-defaults.conf |
--driver-memory MEM | driver内存大小,默认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包会自动包含在类路径里 |
--driver-cores | Driver 的核数,默认是1。在 yarn 或者 standalone 下使用 |
--executor-memory MEM | executor内存大小,默认1G |
--total-executor-cores | 所有 executor 总共的核数。仅仅在 mesos 或者 standalone 下使用 |
--num-executors | 启动的 executor 数量。默认为2。在 yarn 下使用 |
--executor-core | 每个 executor 的核数。在yarn或者standalone下使用 |
--queue QUEUE_NAME | 提交应用程序给那个YARN的队列,默认是Default队列 |
--archives ARCHIVES | 被每个executor提取到工作目录的档案列表,用逗号隔开 |
参数不固定,应该根据自己集群的情况来设置合理的参数。下面举一个常用的具体例子
以下是一份spark-submit命令的示例,大家可以参考一下,并根据自己的实际情况进行调节:
./bin/spark-submit \
--master yarn-cluster \
--num-executors 100 \
--executor-memory 6G \
--executor-cores 4 \
--driver-memory 1G \
--conf spark.default.parallelism=1000 \
--conf spark.storage.memoryFraction=0.5 \
--conf spark.shuffle.memoryFraction=0.3 \