2013-09-24 11 views
12

Ich weiß, es gab viele Beiträge in Bezug auf diese Ausnahme, aber ich bin nicht in der Lage, dieses Problem zu beheben. Classpath muss bearbeitet werden, um es zu lösen. Ich versuche, ein Programm namens DistMap in Hadoop-Infrastruktur zu betreiben. Das ist der Fehler, den ich bekomme.Ausnahme im Thread "Haupt" 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. 
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 

die java sagt

/usr/java/jdk1.6.0_32/bin/java 

echo $ CLASSPATH eine leere Zeile

Katze gibt ~/.bash_profile sagt

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

Die letzten zwei JAR-Dateien haben diese Klassen Platform und FsShell. Es funktioniert immer noch nicht.

Kann mir bitte jemand helfen, dieses Problem zu beheben?

Dank

+0

Scheint, dass es "hadoop-core.jar" nicht finden kann, stellen Sie einfach sicher, dass die JAR-Datei in Ihrem 'CLASSPATH' enthalten ist. – Aaron

+0

ist das so? PATH = $ PATH: $ HOME/bin: /usr/lib/hadoop/hadoop-core.jar – Ashwin

+0

Muss ich diesen PATH in $ PATH ändern: $ usr/java/jdk1.6.0_32/bin? – Ashwin

Antwort

0

Hadoop HADOOP_CLASSPATH issues

Dies wäre hilfreich sein.

Dank & Grüße,
Alok Thaker

+0

ich nicht ganz verstanden habe, da es viele Hadoop-Ordner mit vielen Gläsern gibt. Ich verstehe nicht, welchen man einstellen soll. – Ashwin

+0

Ich habe alle Gläser in meinen Klassenpfad aufgenommen. funktioniert immer noch nicht :( – Ashwin

16

hadoop-auth-2.2.0.jar sollte es für hadoop2.2.0
hadoop Auth jar für Ihre Version hinzufügen

2

Wenn Sie ein Benutzer maven sind und dieses Problem haben -

<dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-client</artifactId> 
     <version>${hadoop.client.version}</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.hadoop</groupId> 
     <artifactId>hadoop-common</artifactId> 
     <version>${hadoop.client.version}</version> 
    </dependency> 

HINWEIS: :hadoop-client:2.5.2 allein brachte nicht alle erforderlichen Hadoop-Abhängigkeiten mit. Deshalb habe ich hadoop-common hinzugefügt, die alle erforderlichen Deps brachte.

Verwandte Themen