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对地图代码的用途是什么?
任何指针都会非常感激
答案 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
类型