gpt4 book ai didi

hadoop - 线程 "main"java.lang.NoClassDefFoundError : org/apache/hadoop/util/Tool 中的异常

转载 作者:可可西里 更新时间:2023-11-01 14:26:08 25 4
gpt4 key购买 nike

I get below error when i package (jar) and run my defaulthadoopjob. 

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/Tool
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.Tool
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 12 more
Could not find the main class: DefaultHadoopJobDriver. Program will exit.


Commands used to build Jar.

# jar -cvf dhj.jar
# hadoop -jar dhj.jar DefaultHadoopJobDriver

The above command gave me error "Failed to load Main-Class manifest attribute from dhj.jar"

rebuilt jar with manifest using below command

jar -cvfe dhj.jar DefaultHadoopJobDriver 。
hadoop -jar dhj.jar DefaultHadoopJobDriver -- 这返回了我在上面报告的原始错误消息。

我的 Hadoop 作业有一个类“DefaultHoopJobDrive”,它扩展了配置和实现工具,并将运行方法作为作业创建和输入路径、输出路径集的唯一代码。我也在使用新的 API。

I'm running hadoop 1.2.1 and the Job works fine from eclipse.

This might be something to do with the classpath. Please help.

最佳答案

要执行该 jar,您不必提供 hadoop -jar。命令是这样的:

 hadoop jar <jar> [mainClass] args...

如果这个 jar 再次获得 java.lang.ClassNotFoundException 异常,那么您可以使用:

hadoop 类路径

查看 hadoop-core-1.2.1.jar 是否存在于您的 hadoop 安装类路径中的命令?

仅供引用,如果它不在此列表中,您必须将此 jar 添加到 hadoop lib 目录。

关于hadoop - 线程 "main"java.lang.NoClassDefFoundError : org/apache/hadoop/util/Tool 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22864069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com