use*_*157 4 java hadoop mapreduce
hadoop的新手,并试图从这里了解mapreduce wordcount示例代码.
文档中的映射器是 -
Mapper<KEYIN,VALUEIN,KEYOUT,VALUEOUT>
Run Code Online (Sandbox Code Playgroud)
我在mapreduce字数统计示例中看到地图代码如下
public void map(Object key, Text value, Context context)
Run Code Online (Sandbox Code Playgroud)
问题 - Object类型的这个键有什么意义?如果映射器的输入是文本文档,我假设其中的值是hadoop已经分区并存储在HDFS中的文本块(64MB或128MB). 更一般地说,这个输入键Keyin对地图代码有什么用?
任何指针都将非常感激
InputFormat描述了Map-Reduce作业的输入规范.默认情况下,hadoop使用TextInputFormat继承FileInputFormat来处理输入文件.
我们还可以指定要在客户端或驱动程序代码中使用的输入格式:
job.setInputFormatClass(SomeInputFormat.class);
Run Code Online (Sandbox Code Playgroud)
对于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类型代替Object
| 归档时间: |
|
| 查看次数: |
2836 次 |
| 最近记录: |