hadoop一些基本知识——Hadoop reducer类的阅读

转载 2015年07月08日 17:36:50

在Hadoop的reducer类中,有3个主要的函数,分别是:setup,clearup,reduce。代码如下:

  /**
   * Called once at the start of the task.
   */
  protected void setup(Context context
                       ) throws IOException, InterruptedException {
    // NOTHING
  }

  /**
   * This method is called once for each key. Most applications will define
   * their reduce class by overriding this method. The default implementation
   * is an identity function.
   */
  @SuppressWarnings("unchecked")
  protected void reduce(KEYIN key, Iterable<VALUEIN> values, Context context
                        ) throws IOException, InterruptedException {
    for(VALUEIN value: values) {
      context.write((KEYOUT) key, (VALUEOUT) value);
    }
  }
  /**
   * Called once at the end of the task.
   */
  protected void cleanup(Context context
                         ) throws IOException, InterruptedException {
    // NOTHING
  }

在用户的应用程序中调用到reducer时,会直接调用reducer里面的run函数,其代码如下:

/*
   * control how the reduce task works.
   */
  @SuppressWarnings("unchecked")
  public void run(Context context) throws IOException, InterruptedException {
    setup(context);
    while (context.nextKey()) {
      reduce(context.getCurrentKey(), context.getValues(), context);
      // If a back up store is used, reset it
      ((ReduceContext.ValueIterator)
          (context.getValues().iterator())).resetBackupStore();
    }
    cleanup(context);
  }
}

由上面的代码,我们可以了解到,当调用到reduce时,通常会先执行一个setup函数,最后会执行一个cleanup函数。而默认情况下,这两个函数的内容都是nothing。因此,当reduce不符合应用要求时,可以试着通过增加setup和cleanup的内容来满足应用的需求。

Hadoop学习之传递命令行参数给Mapper和Reducer

讲述了如何将自定义参数传递给特定的Job,并分析了该方法之所以可行的Hadoop源代码...
  • sky_walker85
  • sky_walker85
  • 2014年08月18日 15:38
  • 6662

[hadoop2.7.2]搭建eclipse源码阅读环境

有的小伙伴在问我如何在windows下搭建一个eclipse的hadoop源码阅读环境,今天就以hadoop2.7.2为例,简单介绍下如何搭建。 环境及工具如下: 1、系统:windows7 2、ec...
  • s060403072
  • s060403072
  • 2016年03月03日 14:42
  • 3431

hadoop一些基本知识——Hadoop简介(1):什么是Map/Reduce

Hadoop简介Hadoop就是一个实现了Google云计算系统的开源系统,包括并行计算模型Map/Reduce,分布式文件系统HDFS,以及分布式数据库Hbase,同时Hadoop的相关项目也很丰富...
  • u013488563
  • u013488563
  • 2015年07月07日 15:06
  • 1131

Hadoop之MapReduce程序分析

摘要:Hadoop之MapReduce程序包括三个部分:Mapper,Reducer和作业执行。本文介绍和分析MapReduce程序三部分结构。...
  • wangloveall
  • wangloveall
  • 2014年06月05日 05:55
  • 5144

Windows下搭建Hadoop(2.6.0) eclipse源码阅读环境

eclipse搭建hadoop2.6.0源码详细步骤
  • yhao2014
  • yhao2014
  • 2015年01月22日 11:39
  • 3162

Hadoop的一些基础知识

Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点...
  • leiline
  • leiline
  • 2017年03月31日 15:30
  • 720

Hadoop Streaming的一些基本知识

Streaming工作原理: 在上面的例子里,mapper和reducer都是可执行文件,它们从标准输入读入数据(一行一行读), 并把计算结果发给标准输出。Streaming工具会创建一个M...
  • hotocde
  • hotocde
  • 2014年03月29日 16:29
  • 1263

Hadoop的MR程序中map的个数

map的个数是由输入所分成的split的个数决定的,有多少个split,就会有多少个map任务。...
  • logsharp
  • logsharp
  • 2016年07月20日 14:02
  • 1458

Hadoop之MapReduce的两种任务模式

一,本地模式(LocalJobRunner实现) mapreduce.framework.name设置为local,则不会使用YARN集群来分配资源,在本地节点执行。在本地模式运行的任务,无法发挥集...
  • qianshangding0708
  • qianshangding0708
  • 2015年08月16日 14:11
  • 3136

Hadoop之仿写搜索引擎

这篇文章,可能比较长,如果你觉得写得好可以把它看完,希望对你有所帮助。 写搜索引擎先整理下思路大致分为三步: 从网上爬取数据,对拿到的数据进行整理即分词,然后通过关键字匹配拿到数据。我会详细介绍这...
  • young_so_nice
  • young_so_nice
  • 2016年05月11日 17:00
  • 6164
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hadoop一些基本知识——Hadoop reducer类的阅读
举报原因:
原因补充:

(最多只允许输入30个字)