繁体   English   中英

将 jars 添加到 Spark 作业 - spark-submit

[英]Adding jars to a Spark Job - spark-submit

以下是我启动 Spark 工作的脚本

#!/bin/bash
APP_DIR="/home/arvind/myApp"
JARS=$(echo $APP_DIR/lib/* | tr ' ' ',')
/home/arvind/spark3/bin/spark-submit \
  --master spark://server4:7078 \
  --verbose \
  --jars $JARS \
  --driver-class-path $APP_DIR/conf \
  --class com.test.spark.MySparkApplication \
  --conf spark.driver.extraJavaOptions="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -Dlog4j.configuration=file:$APP_DIR/conf/log4j.properties" \
  --conf spark.driver.memory="32g" \
  --conf spark.cores.max="20" \
 $APP_DIR/myApp.jar > $APP_DIR/logs/output.err 2> $APP_DIR/logs/output.txt &

lib 文件夹包含所有 jar 文件,与应用程序一起打包,包括 postgres 依赖项

[arvind@server4 myApp]$ ls lib/postgresql-42.1.4.jar
lib/postgresql-42.1.4.jar

当我在 spark3 集群上运行应用程序时,使用上面的脚本,我得到以下异常

265 Caused by: java.lang.ClassNotFoundException: org.postgresql.ds.PGSimpleDataSource
266         at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
267         at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
268         at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
269         at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
270         at com.zaxxer.hikari.util.UtilityElf.createInstance(UtilityElf.java:77)
271         ... 25 more

但是,如果我将上面的脚本更改为将其提交到 spark2.4.0 集群,它就可以正常工作。

你能帮我解决这个问题吗?

如果您将 jar 添加到--driver-class-path ,它应该可以工作:


#!/bin/bash
APP_DIR="/home/arvind/myApp"
JARS=$(echo $APP_DIR/lib/* | tr ' ' ',')
COLON_SEP_JARS=$(echo $APP_DIR/lib/* | tr ' ' ':')
/home/arvind/spark3/bin/spark-submit \
  --master spark://server4:7078 \
  --verbose \
  --jars $JARS \
  --driver-class-path $APP_DIR/conf:$COLON_SEP_JARS \
  --class com.test.spark.MySparkApplication \
  --conf spark.driver.extraJavaOptions="-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+HeapDumpOnOutOfMemoryError -Dlog4j.configuration=file:$APP_DIR/conf/log4j.properties" \
  --conf spark.driver.memory="32g" \
  --conf spark.cores.max="20" \
 $APP_DIR/myApp.jar > $APP_DIR/logs/output.err 2> $APP_DIR/logs/output.txt &

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM