首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将jars添加到Spark作业- spark-submit

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

Stack Overflow用户
提问于 2020-07-17 04:51:11
回答 1查看 184关注 0票数 2

以下是我开始spark工作的脚本

代码语言:javascript
复制
#!/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依赖项

代码语言:javascript
复制
[arvind@server4 myApp]$ ls lib/postgresql-42.1.4.jar
lib/postgresql-42.1.4.jar

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

代码语言:javascript
复制
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集群,它会工作得很好。

你能帮我弄一下这个吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-07-18 06:42:23

如果您像这样将jar添加到--driver-class-path中,那么它应该可以工作:

代码语言:javascript
复制
#!/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 &
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62943289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档