Hadoop:mapred.LocalJobRunner:MissingResourceException

时间:2014-03-04 14:53:42

标签: java maven exception hadoop mapreduce


我正在尝试使用自定义记录阅读器,映射器和减速器设置一个简单的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();

感谢任何建议,
最好

1 个答案:

答案 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文件中添加以上依赖项。可能它会帮助你。对我来说,它解决了这个问题。

如果您有任何疑问,请发表评论。