在HADOOP地图中使用泛型可以减少问题

时间:2014-11-30 04:21:17

标签: java generics hadoop

我的问题似乎对HADOOP用户来说很愚蠢。但是我对Generics在地图减少问题中的使用感到困惑,例如" WORD COUNT"。

我知道Generics用于类型铸造和类型安全的bascialy。但我不能把这个概念联系起来。

在字数问题中,

public class WordCountMapper extends
        Mapper<LongWritable, Text, Text, LongWritable> {
    @Override
    protected void map(LongWritable key, Text value, Context context)
            throws IOException, InterruptedException {
        // TODO Auto-generated method stub
        ...

        }
    }

}

请有人清楚我在这里使用泛型。如果我在提出这个问题时遇到任何错误,请纠正我。

我现在理解这里使用的泛型是键值对(KEY IN,VALUE IN,KEY OUT,VALUE OUT)。但我仍然不清楚,为什么泛型在这里用于键值对。不是 还有其他方法可以做到这一点。 在此处使用Generics有什么好处?

谢谢!

1 个答案:

答案 0 :(得分:1)

MapReduce特别在Mapper和Reducer中使用Generics来指定预期读入和写出的输入和输出类型。

在示例中,您已使用指定的泛型WordCountMapper指定了Mapper扩展Mapper<LongWritable, Text, Text, LongWritable>类,其中前两个类LongWritableText代表输入键和值 Mapper类期望读取,而最后两个类TextLongWritable表示输出键和值类{{ 1}}方法预计会发出。

thread讨论让您更深入地了解为什么在MapReduce中实现了泛型。此外,此JIRA Issue提供了更多信息。