4.2 排序(SORT) 在MapReduce中,排序的目的有两个: MapReduce可以通过排序将Map输出的键分组。然后每组键调用一次reduce。 在某些需要排序的特定场景中,用 ...
4.2 排序(SORT) 在MapReduce中,排序的目的有两个: MapReduce可以通过排序将Map输出的键分组。然后每组键调用一次reduce。 在某些需要排序的特定场景中,用 ...
6.2 诊断性能瓶颈 有的时候作业的执行时间会长得惊人。想靠猜也是很难猜对问题在哪。这一章中将介绍如何界定问题,找到根源。涉及的工具中有的是Hadoop自带的,有的是本书提供的。 ...
4.1.3 半连接(Semi-join) 假设一个场景,需要连接两个很大的数据集,例如,用户日志和OLTP的用户数据。任何一个数据集都不是足够小到可以缓存在map作业的内存中。这样看来,似乎就不能使 ...
4.1 连接(Join) 连接是关系运算,可以用于合并关系(relation)。对于数据库中的表连接操作,可能已经广为人知了。在MapReduce中,连接可以用于合并两个或多个数据集。例如,用户基本 ...
6.4.4 减小数据倾斜的性能损失 数据倾斜是数据中的常见情况。数据中不可避免地会出现离群值(outlier),并导致数据倾斜。这些离群值会显著地拖慢MapReduce的执行。常见的数据倾斜有以下几 ...
5.1 小文件 大数据这个概念似乎意味着处理GB级乃至更大的文件。实际上大数据可以是大量的小文件。比如说,日志文件通常增长到MB级时就会存档。这一节中将介绍在HDFS中有效地处理小文件的技术。 ...
5.2 基于压缩的高效存储 (仅包括技术25,和技术26) 数据压缩可以减小数据的大小,节约空间,提高数据传输的效率。在处理文件中,压缩很重要。在处理Hadoop的文件时,更是如此。为了让Hado ...
4.2.2 总排序(Total order sorting) 有的时候需要将作业的的所有输出进行总排序,使各个输出之间的结果是有序的。有以下实例: 如果要得到某个网站中最受欢迎的网址(URL ...
6.4.3 优化洗牌(shuffle)和排序阶段 洗牌和排序阶段都很耗费资源。洗牌需要在map和reduce任务之间传输数据,会导致过大的网络消耗。排序和合并操作的消耗也是很显著的。这一节将介绍一系 ...
4.3 抽样(Sampling) 用基于MapReduce的程序来处理TB级的数据集,要花费的时间可能是数以小时计。仅仅是优化代码是很难达到良好的效果。 在开发和调试代码的时候,没有必要处理整个数 ...