web-dev-qa-db-fra.com

Exception dans le fil "principal" Java.lang.NoClassDefFoundError: org/Apache/hadoop/util/PlatformName

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/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

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

13
Ashwin

hadoop-auth-2.2.0.jar devrait être présent pour hadoop2.2.0
Ajouter hadoop auth jar pour votre version

18
sreemanth pulagam

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.

3
Thamme Gowda

Problèmes Hadoop HADOOP_CLASSPATH

Ce serait utile.

Merci et salutations
Alok Thaker 

0
linux_fanatic