我已成功安装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$
答案 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中所述。