线程“主”中的异常java.lang.NoClassDefFoundError:org / apache / hadoop / util / PlatformName [英] Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/util/PlatformName

查看:1776
本文介绍了线程“主”中的异常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/h‌​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-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/hado‌​op-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屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆