Spark Launcher

更新时间:
复制为 MD 格式

参考代码仓库中spark-3.x/src/main/java/JavaSparkLauncherExample.java启动 MaxCompute Spark任务。

步骤一:下载并解压Spark客户端

  1. 点击链接或在终端输入如下指令下载并解压Spark客户端,示例为Spark3.1.1-odps0.47.0版本。

    wget https://odps-repo.oss-cn-hangzhou.aliyuncs.com/spark/3.1.1-odps0.47.0/spark-3.1.1-odps0.47.0-client.tar.gz
    tar zxvf spark-3.1.1-odps0.47.0-client.tar.gz
  2. 确认文件位置并已正确下载解压

    image

注:此时下载的客户端为真实执行的客户端版本,而在pom中引入的 spark_launcher 版本只是用于启动

步骤二:设置环境变量

JAVA_HOME设置

# 推荐使用JDK 1.8
export JAVA_HOME=JAVA_PATH/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

SPARK_HOME设置

# 下载上文提到的MaxCompute Spark客户端并解压到本地任意路径
export SPARK_HOME=SPARK_PATH
export PATH=$SPARK_HOME/bin:$PATH

HADOOP_CONF_DIR设置

Spark 2.4Spark 3.x必须要设置该参数。

export HADOOP_CONF_DIR=$SPARK_HOME/conf

步骤三:在代码中设置相关信息

拉取仓库代码步骤请参考通过IDEA打开示例项目,文件位置及代码段如图所示:

image

  • setAppResource(path/to/mainJar):设置主文件mainJar

  • setPropertiesFile或 setConf:设置配置文件propertiesFile

    下载MaxCompute Spark客户端中conf/spark-defaults.conf 有参考示例,更多设置请参考 Spark Configuration

  • spark.launcher.childProcLoggerName: 建议设置,用于显示日志。

  • setMainClass:设置运行的主类mainClass

  • 调用 launcher.launch().waitFor(),其底层实际上是使用一个子进程执行 spark-submit