- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1、Map-Reduce 的逻辑过程
假设我们需要处理一批有关天气的数据,其格式如下:
•按照ASCII 码存储,每行一条记录
•每一行字符从0 开始计数,第 15 个到第 18 个字符为年
•第 25 个到第 29 个字符为温度,其中第 25 位是符号+/-
我们现在需要统计出每年的最高温度。
Map-Reduce 主要包括两个步骤:Map 和 Reduce
每一步都有 key-value 对作为输入和输出:
•map 阶段的 key-value 对的格式是由输入的格式所决定的,如果是
默认的 TextInputFormat,则每行作为一个记录进程处理,其中 key
为此行的开头相对于文件的起始位置,value 就是此行的字符文本
•map 阶段的输出的 key-value 对的格式必须同 reduce 阶段的输入
key-value 对的格式相对应
对于上面的例子,在 map 过程,输入的 key-value 对如下:
在 map 过程中,通过对每一行字符串的解析,得到年-温度的
key-value 对作为输出:
在 reduce 过程,将 map 过程中的输出,按照相同的 key 将 value 放
到同一个列表中作为 reduce 的输入
在 reduce 过程中,在列表中选择出最大的温度,将年-最大温度的
key-value 作为输出:
其逻辑过程可用如下图表示:
2、编写 Map-Reduce 程序
编写 Map-Reduce 程序,一般需要实现两个函数:mapper 中的map 函
数和 reducer 中的reduce 函数。
一般遵循以下格式:
注:Reporter:
Reporter 是用于 Map/Reduce 应用程序报告进度(心跳),设定应用
级别的状态消息, 更新 Counters (计数器)的机制。
OutputCollector:
OutputCollector 是一个 Map/Reduce 框架提供的用于收集 Mapper
或 Reducer 输出数据的通用机制 (包括中间输出结果和作业的输出
结果)。
对于上面的例子,则实现的 mapper 如下:
实现的 reducer 如下:
注:代码中 LongWritable, IntWritable, Text 均是 Hadoop 中实
现的用于封装 Java 数据类型的类,这些类都能够被串行化从而便于
在分布式环境中进行数据交换,你可以将它们分别视为 long, int,
String 的替代品
欲运行上面实现的 Mapper 和 Reduce,则需要生成一个 Map-Reduce
得任务(Job),即初始化 Job 的过程,其基本包括以下三部分:
•输入的数据,也即需要处理的数据
•Map-Reduce 程序,也即上面实现的 Mapper 和 Reducer
•此任务的配置项JobConf
欲配置 JobConf,需要大致了解Hadoop 运行 job 的基本原理:
@..Hadoop 将 Job 分成 task 进行处理,共两种 task:map task 和
reduce task
@..Hadoop 有两类的节点控制 job 的运行:JobTracker 和
TaskTracker
JobTracker 协调整个 job 的运行,将task分配到不同的TaskTracker
上 。TaskTracker 负责运行 task,并将结果返回给 JobTracker
@..Hadoop 将输入数据分成固定大小的块,我们称之 input split
@..Hadoop 为每一个 input split 创建一个 task,在此 task 中依次
处理此 split 中的一个个记录 (record)
@..Hadoop 会尽量让输入数据块所在的 DataNode 和 task 所执行的
DataNode(每个 DataNode 上都有一个 TaskTracker)为同一个,可以
提高运行效率,所以 input split 的大小也一般是HDFS 的block 的
大小。
@..Reduce task 的输入一般为Map Task 的输出,Reduce Task 的输
出为整个 job 的输出,保存在HDFS 上。
@.. 在 reduce 中,相同 key 的所有的记录一定会到同一个
TaskTracker 上面运行,然而不同的 key 可以在不同的 TaskTracker
上面运行,我们称之为 partition (分区)
Partitioner 用于划分键值空间(key
您可能关注的文档
- DNS数据挖掘及搜索引擎技术相结合提升网络安全.pdf
- DOC命令总结与使用方法.doc
- DOS 文件操作.docx
- DOS 命令及批处理 百科创建了,大家都来看一下.doc
- DOS命令、硬盘分区与GHOST应用.pdf
- DOS命令及DOS讲解.doc
- dos命令及参数.doc
- DOS批处理高级教程:第五篇 set命令详解.doc
- DOS下可执行文件加载.pdf
- dreamwaver网页设计第5篇.ppt
- 半导体材料性能提升技术突破与应用案例分析报告.docx
- 半导体设备国产化政策支持下的关键技术突破与应用前景报告.docx
- 剧本杀市场2025年区域扩张策略研究报告.docx
- 剧本杀行业2025人才培训体系构建中的市场需求与供给分析.docx
- 剧本杀行业2025年人才培训行业人才培养模式创新与探索.docx
- 剧本杀行业2025年内容创作人才需求报告.docx
- 剧本杀行业2025年区域市场区域剧本市场消费者满意度与市场竞争力研究报告.docx
- 剧本杀市场2025年区域竞争态势下的区域合作策略分析报告.docx
- 剧本杀行业2025人才培训与行业人才培养模式创新.docx
- 剧本杀行业剧本创作人才心理素质培养报告.docx
最近下载
- 水利工程质量检测员网上继续教育考试题库及答案混凝土专业试题及答案.pdf VIP
- 李白《将进酒》原文及赏析通用5篇.doc VIP
- 《自动喷水灭火系统施工及验收规范》GB50261-2017.docx VIP
- 小学英语_Unit 4 Lesson3 There are twenty pupils in my class教学设计学情分析教材分析课后反思.doc
- 2025贵州省旅游产业发展集团有限公司招聘115人备考试题及答案解析.docx VIP
- 《凤凰男的豪门贤妻》剧本整本.docx VIP
- 2013年水利工程质量检测员网上继续教育考试题库及答案-混凝土专业.pdf VIP
- 消毒技术规范2022.docx VIP
- 阳台封装施工安全协议书5篇.docx
- 消毒技术规范(2022).docx VIP
文档评论(0)