线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / util / PlatformName [英] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
问题描述
我知道这个例外有很多帖子,但我无法解决这个问题。我认为需要编辑Classpath来解决它。
我试图在hadoop基础结构中运行一个名为DistMap的程序。这是我得到的错误。
原因:java.lang.ClassNotFoundException:org.apache.hadoop.util.PlatformName在java.net.URLClassLoader上
$ 1.run(URLClassLoader.java:202)$ java.util.AccessController.doPrivileged中的b $ b(本地方法)$ 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)
无法找到主类:org.apache.hadoop.util.PlatformName。程序将会退出。
线程main中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / fs / FsShell
导致:java.lang.ClassNotFoundException:org.apache.hadoop.fs.FsShell
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)
在java.security.AccessController.doPrivileged(本地方法)$ b $在java.net.URLClassLoader.findClass(URLClassLoader.java: 190)
在java.lang.ClassLoader.loadClass(ClassLoader.java:306)
在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)$ b $在java.lang .ClassLoader.loadClass(ClassLoader.java:247)
无法找到主类:org.apache.hadoop.fs.FsShell。程序将会退出。
线程main中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / util / PlatformName
导致:java.lang.ClassNotFoundException:org.apache.hadoop.util.PlatformName
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)
在java.security.AccessController.doPrivileged(本地方法)$ b $在java.net.URLClassLoader.findClass(URLClassLoader.java: 190)
在java.lang.ClassLoader.loadClass(ClassLoader.java:306)
在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)$ b $在java.lang .ClassLoader.loadClass(ClassLoader.java:247)
无法找到主类:org.apache.hadoop.util.PlatformName。程序将会退出。
线程main中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / fs / FsShell
导致:java.lang.ClassNotFoundException:org.apache.hadoop.fs.FsShell
在java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)
在java.security.AccessController.doPrivileged(本地方法)$ b $在java.net.URLClassLoader.findClass(URLClassLoader.java: 190)
在java.lang.ClassLoader.loadClass(ClassLoader.java:306)
在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)$ b $在java.lang .ClassLoader.loadClass(ClassLoader.java:247)
无法找到主类:org.apache.hadoop.fs.FsShell。程序将会退出。
错误无法在hdfs文件系统上创建输入目录/ distmap_output_input文件夹
/ p>
/usr/java/jdk1.6.0_32/bin/java
echo $ CLASSPATH给出一个空行
cat〜/ .bash_profile says
cat〜/ .bash_profile
#.bash_profile
#获取别名和函数
if [ f〜/ .bashrc];然后
。 〜/ .bashrc
fi
#用户特定环境和启动程序
PATH = $ PATH:$ HOME / bin
导出PATH
更新:
$ HADOOP_HOME / usr / lib / hadoop
$ HADOOP_CLASSPATH
/usr/lib/hadoop-0.20-mapreduce/hadoop-ant-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop -0.20-的MapReduce / Hadoop的的ant.jar :/usr/lib/hadoop-0.20-mapreduce/hadoop-examples-2.0 0.0-MR1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-examples.jar:在/ usr / LIB /小时adoop-0.20-的MapReduce / Hadoop的core.jar添加:/usr/lib/hadoop-0.20-mapreduce/hadoop-core-2 .0.0-MR1-cdh4.4.0.jar:/ usr / lib中/ hadoop的-0.20-的MapReduce / Hadoop的测试2.0.0-MR1-cdh4.4 .0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-test.jar:/usr/lib/hadoop-0.20- MapReduce的/ Hadoop的工具-2.0.0-MR1-cdh4.4.0.jar:/ usr / lib中/ HADO运算0.20-的MapReduce / Hadoop的tools.jar中:/usr/lib/hadoop-0.20-mapreduce/lib/ *罐子:/usr/lib/hadoop/hadoop-common.jar:/ usr / lib中/的Hadoop / hadoo p-common-2.0.0-cdh4.4.0.jar
最后2个jar文件包含PlatformName和FsShell类。
谢谢
$ $对于 hadoop2.2.0 ,hadoop-auth-2.2.0.jar 应该存在于 hadoop2.2.0为你的版本添加 hadoop认证jar
I know there have been many posts regarding this exception, but I am not able to fix this issue. Classpath has to be edited I think to resolve it. I am trying to run a program called DistMap in hadoop infrastructure. This is the error I am getting.
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
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)
Could not find the main class: org.apache.hadoop.util.PlatformName. Program will exit.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FsShell
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FsShell
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)
Could not find the main class: org.apache.hadoop.fs.FsShell. Program will exit.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName
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)
Could not find the main class: org.apache.hadoop.util.PlatformName. Program will exit.
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FsShell
Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FsShell
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)
Could not find the main class: org.apache.hadoop.fs.FsShell. Program will exit.
Error could not create input directory /distmap_output_input folder on hdfs file system
which java says
/usr/java/jdk1.6.0_32/bin/java
echo $CLASSPATH gives a blank line
cat ~/.bash_profile says
cat ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH
Update:
$HADOOP_HOME /usr/lib/hadoop
$HADOOP_CLASSPATH
/usr/lib/hadoop-0.20-mapreduce/hadoop-ant-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-ant.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-examples-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-examples.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-core.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-core-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-test-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-test.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-tools-2.0.0-mr1-cdh4.4.0.jar:/usr/lib/hadoop-0.20-mapreduce/hadoop-tools.jar:/usr/lib/hadoop-0.20-mapreduce/lib/*jar:/usr/lib/hadoop/hadoop-common.jar:/usr/lib/hadoop/hadoop-common-2.0.0-cdh4.4.0.jar
The last 2 jar files have those classes PlatformName and FsShell. Still its not working.
Can anyone please help me fix this issue?
Thanks
hadoop-auth-2.2.0.jar should be there for hadoop2.2.0
Add hadoop auth jar for your version
这篇关于线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / util / PlatformName的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!