spark-submit 参数详解

1,502 阅读2分钟

常用的

  • --master
  • --deploy-mode
  • --class
  • --name
  • --jars
  • --conf
  • --driver-memory
  • --driver-class-path
  • --executor-memory
  • --driver-cores
  • --executor-cores
  • --queue
  • --num-executors

所有的

Options:

  • --deploy-mode client/cluster

    • client:Driver端在你提交submit的机器上,机器挂掉或者shell断掉,程序就挂了
    • cluster:Driver端在Yarn分配的ApplicationMaster上启动一个Driver。与其他Excute交互
  • --master

    • spark跑在什么上就写什么
    • SparkOnYarn Example:yarn
  • --class CLASS_NAME

    • CLASS_NAME:main方法包路径
    • Example: com.xinxing.examples.NiuBi
  • --name NAME

    • NAME:yarn的ApplicationsUI界面上显示的name名,默认为CLASS_NAME
  • --jars JARS

    • JARS:你程序依赖的jar包。如果有多个用,分隔
    • Example:mysql.jar,scala-jdbc.jar
  • --packages groupId:artifactId:version

    • groupId:artifactId:version:依赖的GAV地址,多个用,隔开
    • Example:mysql:mysql-connector-java:5.1.27
  • --repositories http:/ww.xxx.xx/xxxx

  • --exclude-packages groupId:artifactId:version

    • 配合--packages使用,解决jar包依赖冲突问题
  • --files FILES

    • FILES:类似jars参数,你需要用到的配置文件都加载到Driver端,代码中通过方法SparkFiles.get(fileName)获取到
    • Example:/home/configuration/app.conf,/home/configuration/apps.conf
  • --conf PROP=VALUE

    • 个别作业需要单独设置spark-conf参数,就在这里加。有10个就--conf十次
    • Example:spark.shuffle.registration.timeout=2000
  • --properties-file

    • 指定spark-default.conf路径,如果不指定默认为conf/spark-defaults.conf
  • --driver-memory MEM

    • MEM:内存给多少,默认给1G
    • Example:4G
  • --driver-java-options

    • driver端的jvm参数
    • Example:JAVA_TOOL_OPTIONS="-Xmx512m -Xms64m"
  • --driver-library-path

    • 程序所需依赖的jar包目录(是目录!)
  • --driver-class-path

    • 程序所依赖的jar包,多个请用,分隔。注意:--jars的参数也会被加载到这里来,不要重复添加
  • --executor-memory MEM

    • excutor内存给多少,默认给1G
    • Example:4G
  • --proxy-user NAME

    • 代理用户,你写root,执行的时候就会以root用户运行程序,确保你有root的权限~
  • --verbose

    • 把debug信息也全部打印出来,一般程序有异常使用
  • --version

    • 打印spark版本号

Yarn独有的参数

  • --queue QUEUE_NAME
    • QUEUE_NAME:队列名,指定你的程序运行在yarn资源池的哪个队列。默认是default
  • --executor-cores NUM
    • NUM:给executor几个虚拟核,默认给1个
    • Example:4
  • --num-executors NUM
    • NUM:给几个executors,默认给2个
    • Example:4
  • --archives ARCHIVES
    • 没用过,我不晓得
  • --principal PRINCIPAL
    • 没用过,我不晓得
  • --keytab KEYTAB
    • 没用过,我不晓得