0

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

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 {

等等...

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

4

1 回答 1

1

我没有看到您的代码的上下文,但根据您的异常消息,您似乎Mapperinner class.SimpleMapReducePricing

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

public static class SimplePricingMapper 

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

于 2012-07-18T15:31:59.503 回答