【Hadoop】新旧Java MapReduce API的差异
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.数据合并:将旧版本的数据和新版本的数据放置到同一个表格中. 2.通过vlookup(需要查找的数据,查找数据的范围,查找范围中需要的部分的列序号,false 精确查询 true 模糊查询) 两表 ...
- 新旧系统更替产生的数据迁移问题
新旧系统更替产生的数据迁移问题 作者:西安项目组夏凯撰文时间:2004.11.08 在信息化建设过程中,随着技术的发展,原有的信息系统不断被功能更强大的新系统所取代.从两层结构到三层结构,从Clien ...
- java mapreduce api_Hadoop实战-初级部分 之 Hadoop MapReduce JAVA API
精品视频课程推荐 Java数据结构和算法精讲版 本课程专注于数据结构和算法的内容,使用Java来进行代码示例,不空洞的讲解概念和理论,重点放在代码的实现和示例上. 从零开始.全面系统.成体系的讲解数据 ...
- Java核心技术:日期和时间新旧API对比
本文作者:小虚竹,CSDN博客专家&CSDN原力计划作者,Java领域优质创作者,掘金年度人气作者,华为云专家,阿里云专家博主,51CTO专家博主.是一个乐于分享"IT圈" ...
- 详解java中的日期与时间;新旧API对比;各种日期格式转换
一.基本概念 1.本地时间 不同的时区,在同一时刻,本地时间是不同的. 全球一共分为24个时区,伦敦所在的时区称为标准时区,其他时区按东/西偏移的小时区分,北京所在的时区是东八区. 2.时区 GMT ...
- Hadoop 新 MapReduce 框架 Yarn 详解
Hadoop MapReduceV2(Yarn) 框架简介 原 Hadoop MapReduce 框架的问题 对于业界的大数据存储及分布式处理系统来说,Hadoop 是耳熟能详的卓越开源分布式文件存储 ...
- Java新旧代码的比较_比较java新旧I/O的性能——以复制大文件为例
package newio; import java.io.*; import java.nio.ByteBuffer; import java.nio.channels.FileChannel; / ...
- 学习笔记Hadoop(十四)—— MapReduce开发入门(2)—— MapReduce API介绍、MapReduce实例
四.MapReduce API介绍 一般MapReduce都是由Mapper, Reducer 及main 函数组成. Mapper程序一般完成键值对映射操作; Reducer 程序一般完成键值对聚合 ...
- Java 8 新特性之Stream API
1. 概述 1.1 简介 Java 8 中有两大最为重要的改革,第一个是 Lambda 表达式,另外一个则是 Stream API(java.util.stream.*). Stream 是 Java ...
最新文章
- 用aspnetpager实现datalist分页(绝对的简单实用)
- java解压多目录Zip文件(解决中文乱码问题)--转载
- typecast java_Java中的类型转换
- Virtual Box6.1配置CentOS6.5版本的网络连接(静态IP设定)——虚拟机和宿主机互相ping通以及ping通连接外网
- Shell(6)——array的删改unset
- 字符串Hash的原理与应用
- WebBrowser,挖坑,跳坑,填坑
- MyBatisPlus_AR篇_入门试炼_06
- 获取listview当前滚动的高度
- HTTP协议学习总结三(常见http响应头)
- 网游加速器的工作原理
- mac环境下Android 反编译
- 理解和应用共线平面束
- 如何修改电脑的MAC地址(手把手更改)
- 最大m子段和总结与例题 51nod1052 HDU1024
- C#学习笔记:子类于父类的构造函数的关系【By Myself】
- rke 部署的时候报错:Failed to set up SSH tunneling for host
- matlab抽样仿真混叠图,数字信号处理及MATLAB仿真__前言
- 【Wordle】Day9:诶嘿,今天没忘
- 15.字符串处理案例--列车车次查询
热门文章
- eureka自我保护时间_Eureka的自我保护机制
- Python学习入门基础教程(learning Python)--5.7 Python文件数据记录存储与处理
- python 面向对象 类的内置方法
- 程序编译与代码优化 -- 早期(编译期)优化
- 图的简单应用(C/C++实现)
- 一天干掉一只Monkey计划(一)——基本光照模型及RT后处理 【转】
- network-monitor
- -bash: pip: command not found错误
- 从零搭建ES搜索服务(一)基本概念及环境搭建
- APP审核关于3.2.1金融资格的审核回复苹果