运行人员配备问题';在Hadoop 1.0.3上的实践4.1 MapReduce代码中使用

运行人员配备问题';在Hadoop 1.0.3上的实践4.1 MapReduce代码中使用,hadoop,mapreduce,Hadoop,Mapreduce,我正在尝试运行Manning的“Hadoop在实践中”中的4.1示例代码 我正在使用Hadoop1.0.3Java6运行Ubuntu10.4 我使用wordcount示例来验证安装 然后,我尝试使用以下方法运行4.1示例: hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar MyJob.jar MyJob /user/hduser/4.1/input /user/hduser/4.1output 我得到一个错误: Exception in threa

我正在尝试运行Manning的“Hadoop在实践中”中的4.1示例代码

我正在使用Hadoop1.0.3Java6运行Ubuntu10.4

我使用wordcount示例来验证安装

然后,我尝试使用以下方法运行4.1示例:

hduser@ubuntu:/usr/local/hadoop$ bin/hadoop jar MyJob.jar MyJob /user/hduser/4.1/input /user/hduser/4.1output
我得到一个错误:

Exception in thread "main" java.lang.ClassNotFoundException: MyJob
    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)
示例中运行的public run方法与manning的代码似乎不同


我感谢你的帮助

给出jar的完整路径。例如,如果MyJob.jar存在于您的主目录中,那么:
hduser@ubuntu:/usr/local/hadoop$bin/hadoop jar/home/hduser/MyJob.jar MyJob/user/hduser/4.1/input/user/hduser/4.1output

我对hadoop 1.0.3.16和java 6有同样的问题,但我通过添加
job.setJar成功地使人员配置示例4.1工作(“/path/to/MyJob.jar”);
job.setJobName(“MyJob”);
之后,我考虑进行此更改,因为我收到了一个警告:
WARN mapred.JobClient:No-job-jar文件集
。可能找不到用户类。请参阅
JobConf(类)
JobConf\setJar(字符串)
。您收到相同的警告吗

我还尝试添加job.setJarByClass(MyJob.class);但是这不起作用


干杯,Alex

尝试了建议“0”,仍然是相同的错误消息、想法和感谢,hadoop-1.0.3中的驱动程序是否与“Manning”中使用的驱动程序有那么大的不同“?Hi Tariq,在你的gmail上给你发了代码,不知道如何在堆栈溢出时输入。谢谢,先生。我会调查一下,然后尽快回复你。你有这个类在一个包中吗?如果有,你需要提供完全限定的名称。例如,我在包org.mypack.wc中创建了相同的类,因此我必须使用以下命令:apache@hadoop:/hadoop/projects/hadoop-1.0.4$bin/hadoop-jar~/WC.jar org.mypack.WC.MyJob/mapin/in.txt/mapin/in2.txt如果是这样,请确保在发出run命令时添加了包名。还有一个小建议。您正在使用的API是旧的。建议使用新的API,即org.apache.hadoop.mapreduce。我非常感谢您的帮助,但仍然没有运行。任何人都有运气。