【问题标题】:Key of object type in the hadoop mapperhadoop映射器中对象类型的键
【发布时间】:2018-07-12 03:26:57
【问题描述】:

hadoop 新手,试图理解 here 中的 mapreduce wordcount 示例代码。

文档中的映射器是 -

Mapper<KEYIN,VALUEIN,KEYOUT,VALUEOUT>

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

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

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

任何指针将不胜感激

【问题讨论】:

    标签: java hadoop mapreduce


    【解决方案1】:

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

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

    job.setInputFormatClass(SomeInputFormat.class);
    

    对于TextInputFormat,文件被分成几行。键是文件中的位置,值是文本行。

    public void map(Object key, Text value, Context context) 中,key 是行偏移,value 是实际文本。

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

    默认情况下,对于TextInputFormat,Key 是LongWritable 类型,值是Text 类型。在您的示例中,Object 类型在LongWritable 的位置指定,因为它是兼容的。你也可以使用LongWritable类型代替Object

    【讨论】:

      猜你喜欢
      • 2013-11-06
      • 2016-01-21
      • 2021-03-28
      • 1970-01-01
      • 2018-04-04
      • 1970-01-01
      • 2021-12-11
      • 2010-11-03
      • 1970-01-01
      相关资源
      最近更新 更多