原书章节 原书章节题目 翻译文章序号 翻译文章题目 链接 4.1 Joining Hadoop(1) MapReduce 连接:重分区连接(Repartition join) http://www.cnblogs.com/datacloud/p/3578509.html 4.1.1 Repartition join Hadoop(1) MapReduce 连接:重分区连接(Repartition join) http://www.cnblogs.com/datacloud/p/3578509.h…
5.2 基于压缩的高效存储(续) (仅包括技术27) 技术27 在MapReduce,Hive和Pig中使用可分块的LZOP 如果一个文本文件即使经过压缩后仍然比HDFS的块的大小要大,就需要考虑选择一个支持分块的压缩编码器,以防一个单一的map任务来处理整个超大的文件. LZOP可以满足分块的要求,但是使用起来很复杂.原因在于LZOP不是直接支持分块.LZOP是基于块的格式,但是并不支持块的随机访问. 问题 需要选择一个压缩编码器使MapReduce可以调用多个任务并行处理一个单一的压缩文件.…
5.2 基于压缩的高效存储 (仅包括技术25,和技术26) 数据压缩可以减小数据的大小,节约空间,提高数据传输的效率.在处理文件中,压缩很重要.在处理Hadoop的文件时,更是如此.为了让Hadoop更高效处理文件,就需要选择一个合适的压缩编码器,加快作业运行,增加集群的数据存储能力. 技术25 为待处理数据选择正确的压缩编码器在HDFS上使用压缩并不像ZFS文件系统上那样透明,特别是在处理那些可分块的压缩文件时.(这些将在本章中稍后介绍.)由于Avro和SequenceFiles等文件格式提供…
附录A.10 LZOP LZOP是一种压缩解码器,在MapReduce中可以支持可分块的压缩.第5章中有一节介绍了如何应用LZOP.在这一节中,将介绍如何编译LZOP,在集群做相应配置. A.10.1 获得更多的信息 表A.12 有用的资源 描述 URL地址 Twitter有关于LZOP的博客文章,包括一些统计信息和安装指南 http://bit.ly/dfEvGn Todd Lipcon的LZO GitHub库.  https://github.com/toddlipcon/hadoop-lz…
6.2 诊断性能瓶颈 有的时候作业的执行时间会长得惊人.想靠猜也是很难猜对问题在哪.这一章中将介绍如何界定问题,找到根源.涉及的工具中有的是Hadoop自带的,有的是本书提供的. 系统监控和Hadoop任务 在Hadoop的0.20.x版本中,并没有提供MapReduce任务的CPU和内存的性能指标的抽取方法.不过在0.22版本中,CPU和内存性能指标将会被写道作业的历史信息文件中.并且可以通过Hadoop的用户界面来查看这些. 6.2.1 理解MapReduce作业性能的影响因子 从大的方面来…
Hadoop系列性能部分完结.其它的部分发布时间待定. Hadoop系列将不再一日一篇,开始不定期发布.…
4.2.2 总排序(Total order sorting) 有的时候需要将作业的的所有输出进行总排序,使各个输出之间的结果是有序的.有以下实例: 如果要得到某个网站中最受欢迎的网址(URL),就需要根据某种受欢迎的指标来对网址进行排序. 如果要让最活跃的用户能够看到某张表,就需要根据某种标准(发表文章数)对用户进行排序. 技术22 在多个reduce间对键进行排序 在MapReduce框架中,map的输出会被排序,然后被发送给reduce.不过,相同reduce的输入数据是有序的,不同redu…
4.2 排序(SORT) 在MapReduce中,排序的目的有两个: MapReduce可以通过排序将Map输出的键分组.然后每组键调用一次reduce. 在某些需要排序的特定场景中,用户可以将作业(job)的全部输出进行总体排序. 例如:需要了解前N个最受欢迎的用户或网页的数据分析工作. 在这一节中,有两个场景需要对MapReduce的排序行为进行优化. 次排序(Secondary sort) 总排序(Total order sorting) 次排序可以根据reduce的键对它的值进行排序.如…
附录D.2 复制连接框架 复制连接是map端连接,得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点.复制连接的实现非常直接明了.更具体的内容可以参考Chunk Lam的<Hadoop in Action>. 这个部分的目标是:创建一个可以支持任意类型的数据集的通用的复制连接框架.这个框架中提供了一个优化的小功能:动态监测分布式缓存内容和输入块的大小,并判断哪个更大.如果输入块较小,那么你就需要将map的输入块放到内存缓冲中,然后在map的cleanup方法中执行连接操作了…
附录D.1 优化后的重分区框架 Hadoop社区连接包需要将每个键的所有值都读取到内存中.如何才能在reduce端的连接减少内存开销呢?本文提供的优化中,只需要缓存较小的数据集,然后在连接中遍历较大数据集中的数据.这个方法中还包括针对map的输出数据的次排序,那么reducer先接收到较小的数据集,然后接收到较大的数据集.图D.1是这个过程的流程图. 图D.2是实现的类图.类图中包含两个部分,一个通用框架和一些类的实现样例. 连接框架 我们以和Hadoop社区连接包的近似的风格编写连接的代码.目…