【问题标题】:Hadoop mapper constructor, when and how?Hadoop映射器构造函数,何时以及如何?
【发布时间】:2012-07-18 15:28:06
【问题描述】:

好的,所以我尝试运行我的程序并出现了这个错误:

java.lang.RuntimeException: java.lang.NoSuchMethodException: org.(..).SimpleMapReducePricing$SimplePricingMapper.()

这意味着我必须使用构造函数来初始化我的映射器,对吗? 所以,我的问题是为什么我必须这样做,(因为我在任何示例中都没有看到它)以及我怎样才能以简单(noob)的方式做到这一点? 我正在使用新的 api,我的一段代码如下:

    public class SimplePricingMapper 
    extends Mapper<Object, Text, Text, DoubleWritable>
    {   public void map(Object key, Text value, Context context
        ) throws IOException, InterruptedException {

等等……

附言我看到了一个类似的问题,但我必须承认答案让我更加困惑。 谢谢!

【问题讨论】:

    标签: java eclipse hadoop mapreduce


    【解决方案1】:

    我没有看到您的代码上下文,但根据您的异常消息,您的Mapper 似乎是SimpleMapReducePricing 中的一个嵌入类(或所谓的inner class)。

    如果没有SimpleMapReducePricing 的实例,Hadoop 无法实例化Mapper,因此您应该将Mapper 类定义为静态。

    public static class SimplePricingMapper 
    

    我还怀疑您在 SimpleMapReducePricing 中嵌入了减速器,因此您还应该将其定义为静态。

    【讨论】:

    • 先生,您对我帮助很大。我的文凭现在离我更近了一天!谢谢。
    猜你喜欢
    • 2011-12-29
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多