hadoop的新手,并试图从此处了解mapreduce wordcount示例代码。
文档中的映射器是-
Mapper<KEYIN,VALUEIN,KEYOUT,VALUEOUT>
我看到在mapreduce字数示例中,映射代码如下
public void map(Object key, Text value, Context context)
问题-Object类型的此键的作用是什么?如果映射器的输入是文本文档,那么我假设其中的值将是hadoop已分区并存储在HDFS中的文本块(64MB或128MB)。更一般而言,此输入键Keyin在地图代码中的用途是什么?
任何指针将不胜感激
InputFormat描述了Map-Reduce作业的输入规范。默认情况下,hadoop使用TextInputFormat
继承自的FileInputFormat
来处理输入文件。
我们还可以指定在客户端或驱动程序代码中使用的输入格式:
job.setInputFormatClass(SomeInputFormat.class);
对于TextInputFormat
,文件分为几行。键是文件中的位置,值是文本行。
在中public void map(Object key, Text value, Context context)
,键是行偏移量,值是实际文本。
请查看TextInputFormat API https://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapreduce/lib/input/TextInputFormat.html
默认情况下,关键是LongWritable
类型和价值类型是Text
为TextInputFormat
你的榜样,对象类型在的地方。在指定的LongWritable
,因为它是兼容的。您也可以使用LongWritable
type代替Object
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句