提交应用程序

    bin/spark-submit脚本负责建立包含Spark以及其依赖的类路径(classpath),它支持不同的集群管理器以及Spark支持的加载模式。

    • --class:你的应用程序的入口点(如org.apache.spark.examples.SparkPi)
    • --master:集群的master URL(如spark://23.195.26.187:7077)
    • --deploy-mode:在worker节点部署你的driver(cluster)或者本地作为外部客户端(client)。默认是client。
    • --conf:任意的Spark配置属性,格式是key=value。
    • application-jar:包含应用程序以及其依赖的jar包的路径。这个URL必须在集群中全局可见,例如,存在于所有节点的hdfs://路径或file://路径
    • application-arguments:传递给主类的主方法的参数

    一个通用的部署策略是从网关集群提交你的应用程序,这个网关机器和你的worker集群物理上协作。在这种设置下,client模式是适合的。在client模式下,driver直接在spark-submit进程
    中启动,而这个进程直接作为集群的客户端。应用程序的输入和输出都和控制台相连接。因此,这种模式特别适合涉及REPL的应用程序。

    有几个我们使用的集群管理器特有的可用选项。例如,在Spark独立集群的cluster模式下,你也可以指定--supervise用来确保driver自动重启(如果它因为非零退出码失败)。
    为了列举spark-submit所有的可用选项,用--help运行它。

    1. # Run application locally on 8 cores
    2. ./bin/spark-submit \
    3. --master local[8] \
    4. /path/to/examples.jar \
    5. 100
    6. # Run on a Spark Standalone cluster in client deploy mode
    7. --class org.apache.spark.examples.SparkPi \
    8. --master spark://207.184.161.138:7077 \
    9. --executor-memory 20G \
    10. --total-executor-cores 100 \
    11. /path/to/examples.jar \
    12. 1000
    13. # Run on a Spark Standalone cluster in cluster deploy mode with supervise
    14. ./bin/spark-submit \
    15. --class org.apache.spark.examples.SparkPi \
    16. --master spark://207.184.161.138:7077 \
    17. --deploy-mode cluster
    18. --supervise
    19. --total-executor-cores 100 \
    20. /path/to/examples.jar \
    21. # Run on a YARN cluster
    22. export HADOOP_CONF_DIR=XXX
    23. ./bin/spark-submit \
    24. --class org.apache.spark.examples.SparkPi \
    25. --master yarn-cluster \ # can also be `yarn-client` for client mode
    26. --executor-memory 20G \
    27. --num-executors 50 \
    28. /path/to/examples.jar \
    29. 1000
    30. # Run a Python application on a Spark Standalone cluster
    31. ./bin/spark-submit \
    32. --master spark://207.184.161.138:7077 \
    33. examples/src/main/python/pi.py \
    34. 1000

    Master URLs