参考代码仓库中spark-3.x/src/main/java/JavaSparkLauncherExample.java启动 MaxCompute Spark任务。
步骤一:下载并解压Spark客户端
点击链接或在终端输入如下指令下载并解压Spark客户端,示例为Spark
3.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确认文件位置并已正确下载解压

注:此时下载的客户端为真实执行的客户端版本,而在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:$PATHSPARK_HOME设置
# 下载上文提到的MaxCompute Spark客户端并解压到本地任意路径
export SPARK_HOME=SPARK_PATH
export PATH=$SPARK_HOME/bin:$PATHHADOOP_CONF_DIR设置
Spark 2.4和Spark 3.x必须要设置该参数。
export HADOOP_CONF_DIR=$SPARK_HOME/conf步骤三:在代码中设置相关信息
拉取仓库代码步骤请参考通过IDEA打开示例项目,文件位置及代码段如图所示:

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
该文章对您有帮助吗?