Hadoop:MapReduce中的ClassNotFound错误

Sid*_*vee 2 hadoop mapreduce

只是在提出问题之前说出我的设置,

Hadoop Version : 1.0.3
Run Code Online (Sandbox Code Playgroud)

默认的WordCount示例运行正常.但是当我根据这个页面创建一个新的WordCount程序时http://hadoop.apache.org/common/docs/r0.20.2/mapred_tutorial.html

我编译它并以与教程中给出的类似方式对其进行jar-ed.但当我使用以下方式运行时:

/usr/local/hadoop$ bin/hadoop jar wordcount.jar org.myorg.WordCount ../Space/input/ ../Space/output
Run Code Online (Sandbox Code Playgroud)

我收到以下错误,

java.lang.RuntimeException: java.lang.ClassNotFoundException: org.myorg.WordCount$Map
Run Code Online (Sandbox Code Playgroud)

整个错误日志已粘贴在此处:http://pastebin.com/GNbsfpg3

我哪里做错了?

Chr*_*ite 5

错误消息中有一些线索:

12/07/14 18:09:38 WARN mapred.JobClient:使用GenericOptionsParser解析参数.应用程序应该实现相同的工具.

12/07/14 18:09:38 WARN mapred.JobClient:没有工作jar文件集.可能找不到用户类.请参阅JobConf(Class)或JobConf#setJar(String).

您需要与我们共享您的驱动程序代码(您创建和配置作业的地方),但看起来您没有配置"作业jar",也就是说作业客户端没有给出关于您的位置的提示代码被捆绑到一个jar中,因此当你运行你的工作时,在地图实例实际运行时找不到这些类.

你可能想要这样的东西

jobConf.setJarByClass(org.myorg.WordCount.class);
Run Code Online (Sandbox Code Playgroud)