Hadoop中wordcount期间的异常

时间:2014-08-19 10:32:46

标签: java hadoop word-count

我已成功安装Hadoop,现在我想运行Wordcount.jar。如下所示,我的源地址为/user/amir/dft/pg5000.txt,保存结果的目标地址为/user/amir/dft/output.txt

我已从this url下载了.jar文件。 现在,当我运行以下命令时,我正面临此错误消息。我按照this url上的说明进行操作,现在我的问题出现在"运行MapReduce作业"步。我怎样才能克服它?

amir@amir-Aspire-5820TG:/usr/local/hadoop$ bin/hadoop jar /usr/local/hadoop/wordcount.jar wordcount /user/amir/dft/pg5000.txt /user/amir/dft/output.txt
Exception in thread "main" java.lang.ClassNotFoundException: wordcount
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:270)
at org.apache.hadoop.util.RunJar.main(RunJar.java:205)
amir@amir-Aspire-5820TG:/usr/local/hadoop$ 

2 个答案:

答案 0 :(得分:1)

这意味着你指定的主类有错字或错误。您的意思是org.apache.hadoop.examples.WordCount而不是wordcount

答案 1 :(得分:0)

您无需下载新的.jar文件。在hadoop的例子中已经有一个wordcount jar。只需使用命令:

bin/hadoop jar hadoop*examples*.jar wordcount  /user/amir/dft /user/amir/dft-output

输入和输出路径应该是HDFS上的目录,而不是文件。这将在/user/amir/dft/路径下的HDFS上上传的所有文件上运行wordcount程序(包括您的pg5000.txt文件)。

编辑:如果您想运行已下载的特定jar,请按@samthebest's answer(请记住输入和输出路径是目录)。

EDIT2 :根据此回答的评论,似乎使用的hadoop版本比教程中描述的版本更新。因此,wordcount计划的.jar位于路径hadoop_root/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar,如this post中所述。