在运行作业期间,在同一个jar中找不到hadoop类,但在不同的包中找不到hadoop类

在运行作业期间,在同一个jar中找不到hadoop类,但在不同的包中找不到hadoop类,hadoop,jobs,yarn,Hadoop,Jobs,Yarn,我下面是《Hadoop:权威指南2/e》一书的例子。 我遇到了一个问题 我用的是ubuntu 12.04,hadoop 2.2.0。 我使用eclipse制作了job.jar。 类map_reduce.programming.v1.MaxTemperatureReducer位于jar中,但不同的包。 当我运行作业时,我遇到类未找到异常 下面是mapred-site.xml 我遇到了完全相同的问题,作业配置没有找到映射器和Reducer类,并抛出ClassNotFoundException 我正在

我下面是《Hadoop:权威指南2/e》一书的例子。 我遇到了一个问题

我用的是ubuntu 12.04,hadoop 2.2.0。 我使用eclipse制作了job.jar。 类map_reduce.programming.v1.MaxTemperatureReducer位于jar中,但不同的包。 当我运行作业时,我遇到类未找到异常

下面是mapred-site.xml


我遇到了完全相同的问题,作业配置没有找到映射器和Reducer类,并抛出ClassNotFoundException

我正在使用mapreduce2,所以我必须添加

job.setJarByClass(Avg.class);
至于你,我想你应该打电话

JobConf conf = new JobConf(getConf(), YouClassMain.class);
最好的,
Edoardo

您好,我的一些类在jar中,但在不同的包中,遇到了完全相同的问题。在解决这个问题上有什么进展吗?
14/06/05 18:10:20 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
14/06/05 18:10:20 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
14/06/05 18:10:20 INFO client.RMProxy: Connecting to ResourceManager at /0.0.0.0:8032
14/06/05 18:10:20 WARN mapreduce.JobSubmitter: No job jar file set.  User classes may not be found. See Job or Job#setJar(String).
14/06/05 18:10:20 INFO mapred.FileInputFormat: Total input paths to process : 2
14/06/05 18:10:21 INFO mapreduce.JobSubmitter: number of splits:2
14/06/05 18:10:21 INFO Configuration.deprecation: user.name is deprecated. Instead, use mapreduce.job.user.name
14/06/05 18:10:21 INFO Configuration.deprecation: mapred.output.value.class is deprecated. Instead, use mapreduce.job.output.value.class
14/06/05 18:10:21 INFO Configuration.deprecation: mapred.job.name is deprecated. Instead, use mapreduce.job.name
14/06/05 18:10:21 INFO Configuration.deprecation: mapred.input.dir is deprecated. Instead, use mapreduce.input.fileinputformat.inputdir
14/06/05 18:10:21 INFO Configuration.deprecation: mapred.output.dir is deprecated. Instead, use mapreduce.output.fileoutputformat.outputdir
14/06/05 18:10:21 INFO Configuration.deprecation: mapred.map.tasks is deprecated. Instead, use mapreduce.job.maps
14/06/05 18:10:21 INFO Configuration.deprecation: mapred.output.key.class is deprecated. Instead, use mapreduce.job.output.key.class
14/06/05 18:10:21 INFO Configuration.deprecation: mapred.working.dir is deprecated. Instead, use mapreduce.job.working.dir
14/06/05 18:10:22 INFO mapreduce.JobSubmitter: Submitting tokens for job: job_1401958773644_0002
14/06/05 18:10:22 INFO mapred.YARNRunner: Job jar is not present. Not adding any jar to the list of resources.
14/06/05 18:10:22 INFO impl.YarnClientImpl: Submitted application 
application_1401958773644_0002 to ResourceManager at /0.0.0.0:8032
14/06/05 18:10:22 INFO mapreduce.Job: The url to track the job: http://ubuntu:8088/proxy/application_1401958773644_0002/
14/06/05 18:10:22 INFO mapreduce.Job: Running job: job_1401958773644_0002
14/06/05 18:10:27 INFO mapreduce.Job: Job job_1401958773644_0002 running in uber mode : false
14/06/05 18:10:27 INFO mapreduce.Job:  map 0% reduce 0%
14/06/05 18:10:30 INFO mapreduce.Job: Task Id : attempt_1401958773644_0002_m_000001_0, Status : FAILED
Error: java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassNotFoundException: Class map_reduce.programming.v1.MaxTemperatureReducer not found
    at org.apache.hadoop.conf.Configuration.getClass(Configuration.java:1752)
    at org.apache.hadoop.mapred.JobConf.getCombinerClass(JobConf.java:1139)
    at org.apache.hadoop.mapred.Task$CombinerRunner.create(Task.java:1517)
    at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.init(MapTask.java:1010)
    at org.apache.hadoop.mapred.MapTask.createSortingCollector(MapTask.java:390)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:418)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
    at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:162)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:415)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1491)
    at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:157)
job.setJarByClass(Avg.class);
JobConf conf = new JobConf(getConf(), YouClassMain.class);