Je sais que de nombreux articles ont été publiés sur cette exception, mais je ne parviens pas à résoudre ce problème. Classpath doit être modifié, je pense pour le résoudre. J'essaie de lancer un programme appelé DistMap dans l'infrastructure hadoop. C'est l'erreur que je reçois.
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
ce que dit Java
/usr/Java/jdk1.6.0_32/bin/Java
echo $ CLASSPATH donne une ligne vide
cat ~/.bash_profile dit
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
Mettre à jour:
$ 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
Les 2 derniers fichiers jar ont ces classes PlatformName et FsShell. Cela ne fonctionne toujours pas.
Quelqu'un peut-il m'aider s'il vous plaît résoudre ce problème?
Merci
hadoop-auth-2.2.0.jar devrait être présent pour hadoop2.2.0
Ajouter hadoop auth jar pour votre version
Si vous êtes un utilisateur averti et avez fait face à ce problème -
<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>
REMARQUE: :hadoop-client:2.5.2
seul n'a pas apporté toutes les dépendances hadoop requises. C’est la raison pour laquelle j’ai ajouté hadoop-common
, qui contenait tous les détails requis.