ClassNotFoundException, lors de l'exécution de l'exemple de l'emploi de Hadoop
J'ai commencé un petit quelque chose sur hadoop. Il est installé et fonctionne correctement. Je fais un nœud unique /autonome cluster.
Je suis en train d'exécuter un exemple de travail comme indiqué sur http://hadoop.apache.org/common/docs/r0.18.3/mapred_tutorial.html
Jusqu'à présent, le programme est correctement compilé, un pot a été créé, qui se manifeste ajouté avec succès. Mais lorsque j'essaie d'exécuter le travail, j'obtiens cette erreur.
Exception in thread "main" java.lang.ClassNotFoundException: org.myorg.WordCount
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 java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)
J'ai copier collé le même programme comme indiqué dans le lien. Mais c'est en donnant à cette erreur. C'est la ligne de commande que j'ai frappé.
[shantanu@shades1ld1 hadoop]$ bin/hadoop jar /home/shantanu/hadoop/src/examples/wordcount.jar org.myorg.WordCount /tmp/Hadoop_Jobs//tmp/Hadoop_Results
Je suis passé par de nombreux articles, mais ne pouvait pas trouver une explication à cela, s'il vous plaît aider.
OriginalL'auteur Shades88 | 2011-12-13
Vous devez vous connecter pour publier un commentaire.
Êtes-vous sûr que
wordcount.jar
contient lesorg.myorg.WordCount
classe?N'avez-vous pas modifier le nom du package?
pouvez-vous veuillez donner des précisions? Je suis nouveau dans Java. Comme une mise à jour, j'ai enlevé le
package org.myorg;
déclaration. Maintenant, c'est une classe unique. Néanmoins, il me donneException in thread "main" java.lang.ClassNotFoundException: WordCount
. À l'aide !!C'est ça le problème. Vous ne devez pas supprimer le nom du paquet, ou dans la ligne de commande, vous devez vous reporter sans elle.
j'ai supprimé
org.myorg.WordCount
et ilWordCount
, seulementSupprimé tous les réglages et faites-en un nouveau. Tout à coup, tout a commencé à travailler. Aucune modification n'a été faite, sauf que je n'avais pas entré
hadoop.tmp.dir
dans core-sites.xml. Je pense que c'était le problème. Qu'en pensez-vous? Et merci pour votre aide.OriginalL'auteur KARASZI István
J'ai trouvé que j'avais besoin de l'ajouter à l'exemple d'application pour obtenir hadoop pour savoir ce pot mes fichiers de classe sont en.
Je ne sais pas si c'est nouveau pour hadoop ou pas, mais setJarByClass dira hadoop à utiliser un pot entier basé sur une seule classe qui est contenue dans ce fichier jar. Le pot doit toujours être dans votre classpath. C'est la commande que j'ai couru:
Et j'avais déjà copié les exemples de fichiers dans le HDFS à l'aide de cette commande:
où d'entrée/file01:
et d'entrée/file02:
J'ai mis en place un dépôt github avec des instructions sur ce que j'ai pu obtenir un travail.
Merci beaucoup, ça fonctionne pour moi.
À 4:30 am, vous m'avez sauvé 😀
OriginalL'auteur Ted Naleid