- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
MapReduce地特性
MapReduce的特性
贺争盛
2013 年 6月 23日 星期日
浙江大学计算机学院数字媒体
计数器
排序
连接
Contents 1 · 目录一
1
2
3
5
边数据分布
MapReduce库类
Contents 2 · 目录二
4
计数器
一种收集作业统计信息的有效手段,由于质量控制或应用统计。计数器还可辅助诊断系统故障。
获取计数器值比输出日志更为方便
内置计数器
用户定义的java计数器
用户定义的streaming计数器
内置计数器
Hadoop内置的计数器,记录作业执行情况和记录情况。
MapReduce框架、文件系统、作业计数三大类
计数器由关联任务维护,定期传递给tasktracker,再由tasktracker传给jobtracker。
计数器可以被全局聚集。内置的作业计数器实际上由jobtracker维护,不必在整个网络中传递。
一个任务的计数器值每次都是完整传输的
用户定义的Java计数器
多个计数器由一个Java枚举(enum)类型来定义
MapReduce框架将跨所有map和reduce聚集这些计数器,并在作业结束时产生一个最终结果。
用户定义的Java计数器
动态计数器
incrCounter(String group,String counter,long amount)
不由java枚举类型定义的计数器
两种创建和访问计数器方法——枚举类型和string类型——事实上等价
获取计数器
两种获取计数器的方法
1. hadoop job –counter 指令
2.通过java API,在作业运行完成后,计数器稳定后获取。 使用job.getCounters()得到Counters
排序
排序是MapReduce的核心技术
准备
要用顺序文件存储数据,Intwritable键代表气温(排序),text值就是数据行。
每个map创建并输出一个块压缩的顺序文件
部分排序
基于分区的MapFile查找技术
全排序
产生一个全局排序的文件
只有一个分区可以实现,但无法利用并行的优势
替代方案:
1、 创建一系列排好序的文件
2、 串联这些文件,
3、 生成一个全局排序的文件
思路:使用一个partitioner来描述全局排序的输出。
全排序
关键点在于如何划分各个分区。尽量使各分区的记录数相等。
1、 可以写一个MapReduce程序来计算各个范围数据的分布,用来做评估。但性能较低
2、 可以通过对键空间进行采样,获取键的近似分布。
全排序
辅助排序
主要解决对键所对应的值的排序
1、 定义包括自然键和自然值的组合键
2、 键的comparator根据组合键对记录进行排序,即同时利用自然键和自然值进行排序
3、 针对组合键的comparator和分组comparator在进行分区和分组时均只考虑自然键
连接
连接
连接操作的具体实现技术取决于数据集的规模和分区方式
1、 如果一个数据集很大,一个数据集很小,则将集合分发到集群中每一个节点,从而实现连接
2、 对两个数据集都很大,则需要根据数据的组织方式,来决定是在map端连接还是在reduce端连接。
Map端连接
在两个大规模输入数据集之间的map端连接会在数据到达map函数之前就执行连接操作。
相同数量分区,按相同键排序(连接键)
reduce端连接
Reduce端连接并不要求输入数据集符合特定结构,因而reduce端连接比ap端连接更为常用。但由于两个数据集均需经过MapReduce的shuffle过程,所以reduce端连接的效率往往更低一些。
基本思路:mapper为各个记录标记源,并且使用连接健作为map输出键,使键相同的记录放在同一个reducer中。
边数据分布
“边数据”(side data)是作业所需的额外的只读数据,以辅助处理主数据集。
如何让所有map或reduce任务方便而高效使用边数据。
利用JobConf来配置作业
如果只需向任务传递少量元数据则非常有用。如果想获取任务的值,只需覆盖Mapper或Reducer类的configure()方法,并调用传入JobConf对象的getter方法即可。
分布式缓存
Hadoop的分布式缓存拷贝机制,它能够在任务运行过程中及时将文件和存档复制到任务节点以供使用。为了节约网络带宽,在每一个作业中,各个文件通常只需复制到一个节点一次。
缓存的容量是有限的,默认10G,可以在local.cache.size进行配置
-file 指定带分发的文件
-archieves 向自己的任务中复制存档文件
-libjars 把JAR文件添加到mapper和reducer任务的类路径中。
分布式缓存
工作机制:
1、 用户启动一个作业,hadoop将由-f
您可能关注的文档
最近下载
- 6-CFD基础及软件应用汇总课件.pptx VIP
- 移动通信职业规划.docx VIP
- 2024年杭州钱塘新区城市发展集团有限公司招聘真题 .pdf VIP
- 输日热加工禽肉及其产品动物卫生要求.pdf VIP
- 2025杭州钱塘新区城市发展集团有限公司社会招聘22人笔试备考题库及答案解析.docx VIP
- 药物分析与常用组学技术在药学服务中的应用题库答案-2025年华医网继续教育.docx VIP
- 海丰2022年事业编招聘考试《公共基础知识》真题及答案解析三.docx VIP
- 7、美国联邦法典第九卷联邦肉类检验法.doc VIP
- 2024年入团积极分子考试题库.docx VIP
- 《荷塘月色》课件25张 .ppt VIP
文档评论(0)