Comment faire pour exécuter un fichier jar dans hadoop?

J'ai créé un fichier jar en utilisant le fichier java de ce blog à l'aide de déclarations suivantes

javac -classpath /usr/local/hadoop/hadoop-core-1.0.3.jar -d /home/hduser/dir Dictionary.java

/usr/lib/jvm/jdk1.7.0_07/bin/jar cf Dictionary.jar /home/hduser/dir

Maintenant, j'ai essayé de lancer ce pot dans hadoop par hit et le procès de différentes commandes de

1hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop jar Dictionary.jar

De sortie:

Warning: $HADOOP_HOME is deprecated.

RunJar jarFile [mainClass] args...  

2.hduser@ubuntu:~$ /usr/local/hadoop/bin/hadoop jar Dictionary.jar Dictionary

De sortie:

Warning: $HADOOP_HOME is deprecated.

Exception in thread "main" java.lang.ClassNotFoundException: Dictionary
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at org.apache.hadoop.util.RunJar.main(RunJar.java:149)

Comment puis-je exécuter le pot dans hadoop? J'ai le droit DFS Emplacements selon besoin par mon programme.

Le message d'erreur indique que la classe n'est pas trouvé. Assurez-vous que votre bocal a cette classe. Nouveau Dictionnaire de la classe aura besoin d'avoir une méthode main.

OriginalL'auteur Arihant | 2012-10-22