当前位置: 首页 > 知识库问答 >
问题:

不带Hadoop的Spark2.4.6:出现JNI错误

尉迟德惠
2023-03-14

在我的windows计算机上,我试图使用-spark-2.4.6-bin-without-hadoop-scala-2.12.tgz在没有hadoop的情况下使用spark 2.4.6

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/Logger
        at java.lang.Class.getDeclaredMethods0(Native Method)
        at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
        at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
        at java.lang.Class.getMethod0(Class.java:3018)
        at java.lang.Class.getMethod(Class.java:1784)
        at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
        at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.slf4j.Logger
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 7 more

我在spark的spark-env.sh中也有这一行-

export SPARK_DIST_CLASSPATH=$(C:\opt\spark\hadoop-2.7.3\bin\hadoop classpath)
HADOOP_HOME = C:\opt\spark\hadoop-2.7.3
SPARK_HOME = C:\opt\spark\spark-2.4.6-bin-without-hadoop-scala-2.12

当我尝试hadoop附带的Spark2.4.5时,似乎工作得很好。这说明我的hadoop设置方式有问题。我在这里漏掉了什么?谢了!

共有1个答案

张晔
2023-03-14

在这里找到了解决办法

  1. 转到您的~/.bashrc
  2. 添加导出spark_dist_classpath=$(hadoop classpath)
  3. 使用source~/.bashrc
  4. 应用环境
 类似资料:
  • 我试图使用javamail示例包中的ShowMsg.java读取gmail消息,但在运行时不断出现此错误。虽然程序编译得很好。 以下是错误消息: 我运行的命令是,编译它的命令是。javax.mail.jar包含在lib文件夹中 这是一些更短的替代代码,并得到相同的错误:

  • 我正在使用IntelliJ IDEA从LeanFT项目创建一个jar工件。 jar工件已生成,但带有以下错误消息: 发生JNI错误,请检查您的安装并重试 当试图直接执行jar文件时。 当我使用IDE执行时,它正在工作。不需要任何参数或参数值。当我从简单的“你好世界”生成一个jar文件时,我收到同样的错误。 堆栈跟踪:

  • 错误:出现JNI错误,请检查您的安装并重试线程“main”java.lang.noClassDefounderror:com/beust/jCommander/ParameterException在java.lang.class.getDeclaredMethods 0(本机方法)在java.lang.class.privateGetDeclaredMethods(未知源)在java.lang.c

  • 对于配置中的MultipleOutputs,我使用LazyOutput,但它会产生错误。我已经检查了其他一些lazyoutput的例子,他们正在工作,它在我想要的程序中不工作。 错误是 虽然与此处相同https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/lib/output/multipleoutputs.ht

  • 当我尝试通过Flume将流数据输入hadoop时,我收到以下错误。 我已经在flume/lib中创建了指向< code >的链接。hadoop/share/hadoop/中的jar文件 我仔细检查了URL,我认为它们都是正确的。想发帖子来获得更多的关注和反馈。 这是水槽水槽配置 核心网站. xml - Hadoop 2.8