【发布时间】:2021-08-27 23:44:27
【问题描述】:
我正在尝试通过spark-submit 运行工作。
此作业导致的错误是:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/Logger
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2625)
at java.lang.Class.getMethod0(Class.java:2866)
at java.lang.Class.getMethod(Class.java:1676)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more
不确定这是否重要,但我正在尝试在 Mesos 上的 Docker 容器中运行此作业。 Spark 是 1.61,Mesos 是 0.27.1,Python 是 3.5,Docker 是 1.11.2。我在客户端模式下运行。
这是我的spark-submit 声明的要点:
export SPARK_PRINT_LAUNCH_COMMAND=true
./spark-submit \
--master mesos://mesos-blahblahblah:port \
--conf spark.mesos.executor.docker.image=docker-registry:spark-docker-image \
--conf spark.mesos.executor.home=/usr/local/spark \
--conf spark.executorEnv.MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.dylib \
--conf spark.shuffle.service.enabled=true \
--jars ~/spark/lib/slf4j-simple-1.7.21.jar \
test.py
test.py 的要点是它从 parquet 加载数据,按特定列对其进行排序,然后将其写回 parquet。
当我不断收到该错误时,我添加了 --jars 行(该错误未出现在我的驱动程序中 - 我浏览 Mesos 框架以查看每个 Mesos 任务中的 stderr 以找到它)
我也试过加--conf spark.executor.extraClassPath=http:some.ip:port/jars/slf4j-simple-1.7.21.jar,
因为我注意到当我从上面运行spark-submit 时,它会输出
INFO SparkContext: Added JAR file:~/spark/lib/slf4j-simple-1.7.21.jar at http://some.ip:port/jars/slf4j-simple-1.7.21.jar with timestamp 1472138630497
但错误没有改变。有什么想法吗?
我找到了this link,这让我觉得这是一个错误。但此人尚未发布任何解决方案。
【问题讨论】:
-
通常当我在 yarn 上提交申请时,我会使用
--jars和--files配置参数的组合,这似乎可行。 -
你解决过这个错误吗?
-
@FGreg 不,我没有。
标签: apache-spark jar pyspark slf4j