Hadoop在0.20.0版本中第一次使用新的API,部分早期的0.20.0版本不支持使用旧的API,但在接下来的1.x和2.x版本中新旧API都可以使用。

新旧API的差异主要有以下几点:

1. 新API倾向于使用虚类,而不是接口,因为更有利于扩展。在旧的API中使用Mapper和Reducer接口,而在新的API中使用虚类。

2. 新的API放在org.apache.hadoop.mapreduce包(和子包)中,旧的API放在org.apache.hadoop.mapred中。

3. 新API充分使用上下文对象,使用户代码能与MapReduce系统通信。例如,新的Context基本统一了旧API的JobConf、OutputCollector和Reporter的功能。

4. 键/值对记录在这两类API中都被推给mapper和reducer,但除此之外,新的API通过重写run()方法允许mapper和reducer控制执行流程。

5. 新的API中作业控制由Job类实现,而非旧API中的JobClient类,新的API中删除了JobClient类。

6. 新增的API实现了配置的统一。旧API通过一个特殊的JobConf对象配置作业,该对象是Hadoop配置对象的一个扩展。在新的API中,作业的配置由Configuration来完成。

7. 输出文件的命名方式稍有不同。在旧的API中map和reduce的输出被统一命名为part-nnmm,但在新的API中map的输出文件名为part-m-nnnnnn,而reduce的输出文件名为part-r-nnnnn(其中nnnnn是从0开始的表示分块序号的整数)。

8. 新API中的用户重载函数被声明为抛出异常java.lang.InterruptedException。这意味着可以用代码来实现中断响应。

9.在新的API中,reduce()传递的值是java.lang.Iterable类型的,而非旧API中传递的java.lang.Iterator类型。这一改变使我们更容易通过java的for-each循环结构来迭代这些值。

----本文摘于《Hadoop权威指南第三版》,章节2.3.2.2

【Hadoop】新旧Java MapReduce API的差异相关推荐

  1. 新旧版本表格数据对比差异流程

    1.数据合并:将旧版本的数据和新版本的数据放置到同一个表格中. 2.通过vlookup(需要查找的数据,查找数据的范围,查找范围中需要的部分的列序号,false 精确查询 true 模糊查询)  两表 ...

  2. 新旧系统更替产生的数据迁移问题

    新旧系统更替产生的数据迁移问题 作者:西安项目组夏凯撰文时间:2004.11.08 在信息化建设过程中,随着技术的发展,原有的信息系统不断被功能更强大的新系统所取代.从两层结构到三层结构,从Clien ...

  3. java mapreduce api_Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API

    精品视频课程推荐 Java数据结构和算法精讲版 本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上. 从零开始.全面系统.成体系的讲解数据 ...

  4. Java核心技术:日期和时间新旧API对比

    本文作者:小虚竹,CSDN博客专家&CSDN原力计划作者,Java领域优质创作者,掘金年度人气作者,华为云专家,阿里云专家博主,51CTO专家博主.是一个乐于分享"IT圈" ...

  5. 详解java中的日期与时间;新旧API对比;各种日期格式转换

    一.基本概念 1.本地时间 不同的时区,在同一时刻,本地时间是不同的. 全球一共分为24个时区,伦敦所在的时区称为标准时区,其他时区按东/西偏移的小时区分,北京所在的时区是东八区. 2.时区 GMT ...

  6. Hadoop 新 MapReduce 框架 Yarn 详解

    Hadoop MapReduceV2(Yarn) 框架简介 原 Hadoop MapReduce 框架的问题 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储 ...

  7. Java新旧代码的比较_比较java新旧I/O的性能——以复制大文件为例

    package newio; import java.io.*; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; / ...

  8. 学习笔记Hadoop(十四)—— MapReduce开发入门(2)—— MapReduce API介绍、MapReduce实例

    四.MapReduce API介绍 一般MapReduce都是由Mapper, Reducer 及main 函数组成. Mapper程序一般完成键值对映射操作; Reducer 程序一般完成键值对聚合 ...

  9. Java 8 新特性之Stream API

    1. 概述 1.1 简介 Java 8 中有两大最为重要的改革,第一个是 Lambda 表达式,另外一个则是 Stream API(java.util.stream.*). Stream 是 Java ...

最新文章

  1. 用aspnetpager实现datalist分页(绝对的简单实用)
  2. java解压多目录Zip文件(解决中文乱码问题)--转载
  3. typecast java_Java中的类型转换
  4. Virtual Box6.1配置CentOS6.5版本的网络连接(静态IP设定)——虚拟机和宿主机互相ping通以及ping通连接外网
  5. Shell(6)——array的删改unset
  6. 字符串Hash的原理与应用
  7. WebBrowser,挖坑,跳坑,填坑
  8. MyBatisPlus_AR篇_入门试炼_06
  9. 获取listview当前滚动的高度
  10. HTTP协议学习总结三(常见http响应头)
  11. 网游加速器的工作原理
  12. mac环境下Android 反编译
  13. 理解和应用共线平面束
  14. 如何修改电脑的MAC地址(手把手更改)
  15. 最大m子段和总结与例题 51nod1052 HDU1024
  16. C#学习笔记:子类于父类的构造函数的关系【By Myself】
  17. rke 部署的时候报错:Failed to set up SSH tunneling for host
  18. matlab抽样仿真混叠图,数字信号处理及MATLAB仿真__前言
  19. 【Wordle】Day9:诶嘿,今天没忘
  20. 15.字符串处理案例--列车车次查询

热门文章

  1. eureka自我保护时间_Eureka的自我保护机制
  2. Python学习入门基础教程(learning Python)--5.7 Python文件数据记录存储与处理
  3. python 面向对象 类的内置方法
  4. 程序编译与代码优化 -- 早期(编译期)优化
  5. 图的简单应用(C/C++实现)
  6. 一天干掉一只Monkey计划(一)——基本光照模型及RT后处理 【转】
  7. network-monitor
  8. -bash: pip: command not found错误
  9. 从零搭建ES搜索服务(一)基本概念及环境搭建
  10. APP审核关于3.2.1金融资格的审核回复苹果