首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MapReduce API 基本概念

MapReduce API 基本概念

作者头像
加米谷大数据
发布2018-04-02 14:45:58
5370
发布2018-04-02 14:45:58
举报
文章被收录于专栏:加米谷大数据加米谷大数据

在正式分析新旧 API 之前,先要介绍几个基本概念。这些概念贯穿于所有 API 之中,因此,有必要单独讲解。

1、 序列化

序列化是指将结构化对象转为字节流以便于通过网络进行传输或写入持久存储的过程。

反序列化指的是将字节流转为结构化对象的过程。在 Hadoop MapReduce 中,序列化的主要作用有两个:永久存储和进程间通信。

为了能够读取或者存储 Java 对象,MapReduce 编程模型要求用户输入和输出数据 中 的 key 和 value 必 须 是 可 序 列 化 的。 在 Hadoop MapReduce 中, 使 一 个 Java 对 象可序列化的方法是让其对应的类实现 Writable 接口。但对于 key 而言,由于它是数据排序的关键字,因此还需要提供比较两个 key 对象的方法。为此,key 对应类需实现WritableComparable 接口,它的类如图 3-3 所示 。

2、Reporter 参数

Reporter 是 MapReduce 提 供 给 应 用 程 序 的 工 具。 如 图 3-4 所 示, 应 用 程 序 可 使 用Reporter 中的方法报告完成进度(progress)、设定状态消息(setStatus)以及更新计数器(incrCounter)。

Reporter 是一个基础参数。MapReduce 对外提供的大部分组件,包括 InputFormat、Mapper 和 Reducer 等,均在其主要方法中添加了该参数。

3、回调机制

回调机制是一种常见的设计模式。它将工作流内的某个功能按照约定的接口暴露给外部使用者,为外部使用者提供数据,或要求外部使用者提供数据。

Hadoop MapReduce 对外提供的 5 个组件(InputFormat、Mapper、Partitioner、Reducer 和

OutputFormat)实际上全部属于回调接口。当用户按照约定实现这几个接口后,MapReduce运行时环境会自动调用它们。如图 3-5 所示,MapReduce 给用户暴露了接口 Mapper,当用户按照自己的应用程序逻辑实现自己的 MyMapper 后,Hadoop MapReduce 运行时环境会将输入数据解析成 key/value 对,并调用 map() 函数迭代处理。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-03-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加米谷大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档