我正在尝试使用自定义记录阅读器,映射器和减速器设置一个简单的mapReduce应用程序。直到(包括)mapper它似乎工作(当调用context.write我在控制台上写出键值对进行测试)。
然后我收到消息
“14/03/04 14:25:43 INFO mapred.JobClient:map 100%reduce 0%”。
但之后我每隔3秒进入一个无限循环
“14/03/04 14:25:45 INFO mapred.LocalJobRunner:”
没有详细的消息或其他任何内容。
在我的IDE中启用记录所有异常时,我在上面的每条消息后都会收到以下异常:
异常'java.util.MissingResourceException'在线程中发生 '沟通线'来 java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
我在作业配置中定义了mapper和reducer,但似乎找不到reducer-class(?)。在减速机内部设一个断点,程序永远不会出现在这条线上。
我的pom.xml:
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-hadoop</artifactId>
<version>1.0.2.RELEASE</version>
</dependency>
和我的工作:
Job job = new Job(new Configuration());
job.setOutputKeyClass(IntWritable.class);
job.setOutputValueClass(Text.class);
job.setMapOutputKeyClass(IntWritable.class);
job.setMapOutputValueClass(IntWritable.class);
job.setMapperClass(DataFileMapper.class);
job.setReducerClass(DataFileReducer.class);
job.setInputFormatClass(HourBlockInputFormat.class);
FileInputFormat.addInputPath(job, new Path("..."));
FileOutputFormat.setOutputPath(job, new Path("..."));
job.submit();
感谢任何建议,
最好
答案 0 :(得分:0)
我得到了同样的错误(无限循环)。我通过更新我的pom.xml文件解决了这个问题。
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
<version>2.7.1</version>
</dependency>
<dependencies>
在我的pom.xml文件中添加以上依赖项。可能它会帮助你。对我来说,它解决了这个问题。
如果您有任何疑问,请发表评论。