4.2 排序(SORT) 在MapReduce中,排序的目的有两个: MapReduce可以通过排序将Map输出的键分组。然后每组键调用一次reduce。 在某些需要排序的特定场景中,用户可以将作业(job)的全部输出进行总体排序。 例如:需要了解前N个最受欢迎的用户或网页 ...
. . 总排序 Total order sorting 有的时候需要将作业的的所有输出进行总排序,使各个输出之间的结果是有序的。有以下实例: 如果要得到某个网站中最受欢迎的网址 URL ,就需要根据某种受欢迎的指标来对网址进行排序。 如果要让最活跃的用户能够看到某张表,就需要根据某种标准 发表文章数 对用户进行排序。 技术 在多个reduce间对键进行排序 在MapReduce框架中,map的输 ...
2014-03-08 06:27 0 3197 推荐指数:
4.2 排序(SORT) 在MapReduce中,排序的目的有两个: MapReduce可以通过排序将Map输出的键分组。然后每组键调用一次reduce。 在某些需要排序的特定场景中,用户可以将作业(job)的全部输出进行总体排序。 例如:需要了解前N个最受欢迎的用户或网页 ...
6.4.3 优化洗牌(shuffle)和排序阶段 洗牌和排序阶段都很耗费资源。洗牌需要在map和reduce任务之间传输数据,会导致过大的网络消耗。排序和合并操作的消耗也是很显著的。这一节将介绍一系列的技术来缓解洗牌和排序阶段的消耗。 技术46 规避使用reduce Reduce在用 ...
4.3 抽样(Sampling) 用基于MapReduce的程序来处理TB级的数据集,要花费的时间可能是数以小时计。仅仅是优化代码是很难达到良好的效果。 在开发和调试代码的时候,没有必要处理整个数据集。但如果在这种情况下要保证数据集能够被正确地处理,就需要用到抽样了。抽样是统计学中的一个方法 ...
数以百万计的图片存储分别在HDFS中。很不幸的是,这样做恰好碰上了HDFS和MapReduce的弱项,如下: ...
4.1.2 复制连接(Replication join) 复制连接是map端的连接。复制连接得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点。复制连接有一个假设前提:在被连接的数据集中,有一个数据集足够小到可以缓存在内存中。 如图4.5所示,MapReduce复制连接工作 ...
5.2 基于压缩的高效存储 (仅包括技术25,和技术26) 数据压缩可以减小数据的大小,节约空间,提高数据传输的效率。在处理文件中,压缩很重要。在处理Hadoop的文件时,更是如此。为了让Hadoop更高效处理文件,就需要选择一个合适的压缩编码器,加快作业运行,增加集群的数据存储能力 ...
6.4.4 减小数据倾斜的性能损失 数据倾斜是数据中的常见情况。数据中不可避免地会出现离群值(outlier),并导致数据倾斜。这些离群值会显著地拖慢MapReduce的执行。常见的数据倾斜有以下几类: 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记录 ...
6.1 测量MapReduce和环境的性能指标 性能调优的基础系统的性能指标和实验数据。依据这些指标和数据,才能找到系统的性能瓶颈。性能指标和实验数据要通过一系列的工具和过程才能得到。 这部分里,将介绍Hadoop自带的工具和性能指标。还将捎带介绍性能监控工具。 6.1.1 作业 ...