hadoop映射器中对象类型的键

时间:2015-03-15 17:28:17

标签: java hadoop mapreduce

hadoop的新手,并尝试从here了解mapreduce wordcount示例代码。

文档中的映射器是 -

Mapper<KEYIN,VALUEIN,KEYOUT,VALUEOUT>

我在mapreduce字数统计示例中看到地图代码如下

public void map(Object key, Text value, Context context)

问题 - Object类型的这个键有什么意义?如果映射器的输入是文本文档,我假设其中的值是hadoop已经分区并存储在HDFS中的文本块(64MB或128MB)。 更一般地说,此输入键Keyin对地图代码的用途是什么?

任何指针都会非常感激

1 个答案:

答案 0 :(得分:8)

InputFormat描述了Map-Reduce作业的输入规范。默认情况下,hadoop使用继承TextInputFormat的{​​{1}}来处理输入文件。

我们还可以指定要在客户端或驱动程序代码中使用的输入格式:

FileInputFormat

对于job.setInputFormatClass(SomeInputFormat.class); ,文件分为几行。键是文件中的位置,值是文本行。

TextInputFormat中, 是行偏移量, 是实际文本

请查看TextInputFormat API https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/lib/input/TextInputFormat.html

默认情况下,密钥为public void map(Object key, Text value, Context context)类型,LongWritable的值为Text。在您的示例中,对象类型在TextInputFormat处指定为它是兼容的。您也可以在LongWritable

的位置使用LongWritable类型