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一些基本知识——Hadoop简介(1):什么是Map/Reduce

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

Hadoop Streaming的一些基本知识

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

Hadoop学习笔记(一)---Linux基本知识说明

Hadoop的生成环境都是在linux下面,不过呢hadoop2.x 已经开始支持windows平台,但是支持并不是很好,因此熟悉linux的命令是很重要的,需要熟悉linux的基本命令和环境的基本配...

hadoop基本知识

服务的基本的启动方法 sbin/start-all.sh 关闭方法 sbin/stop-all.sh 历史记录的启动方法 sbin/mr-jobhistory-daemon.sh s...

Hadoop之Hdfs基本知识

简介         Hdfs(Hadoop Distributed FileSystem)是根据谷歌发表的论文(Google File System)Google的文件系统。Hdfs以流式数据访问...

Hadoop基本知识,(以及MR编程原理)

1,一个map可能在多个节点上运行:     如果map运行过慢,就会在别的节点上重开一个,两个谁先跑完就取谁的结果,然后杀掉另一个。   2,如果有百个节点左右的集群想要做hadoop版本升级,有...

Hadoop学习笔记(五):一些关于HDFS的基本知识

当某个数据集大大小超出单个物理机的存储能力时,我们可以考虑使用集群。管理跨网络机器存储的文件系统叫做分布式文件系统(Distributed FileSystem)。随着多节点的引入,相应的问题也就出现...

【hadoop】Hadoop学习笔记(五):一些关于HDFS的基本知识

当某个数据集大大小超出单个物理机的存储能力时,我们可以考虑使用集群。管理跨网络机器存储的文件系统叫做分布式文件系统(Distributed FileSystem)。随着多节点的引入,相应的问题也就出现...

《C++ primer》英文第五版阅读笔记(二十五)——函数基本知识

Chapter6.1——Function Basics 函数基本知识 函数是一个有名字的代码块。通过函数调用来执行函数内的代码。一个函数可能有0个或多个参数,但是只有一个返回值。函数可以进行...

《C++ primer》英文第五版阅读笔记(十三)——表达式基本知识

Chapter4,Section4.1——Fundamentals 基本原理 对于如何计算表达式的值有许多基本的概念,在这里先简短进行介绍,后面会进行详细的介绍。 (一)基本概念 操作符有一元...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:hadoop一些基本知识——Hadoop reducer类的阅读
举报原因:
原因补充:

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