6.4.4 减小数据倾斜的性能损失 数据倾斜是数据中的常见情况。数据中不可避免地会出现离群值(outlier),并导致数据倾斜。这些离群值会显著地拖慢MapReduce的执行。常见的数据倾斜有以下几类: 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记录 ...
. . 优化洗牌 shuffle 和排序阶段 洗牌和排序阶段都很耗费资源。洗牌需要在map和reduce任务之间传输数据,会导致过大的网络消耗。排序和合并操作的消耗也是很显著的。这一节将介绍一系列的技术来缓解洗牌和排序阶段的消耗。 技术 规避使用reduce Reduce在用于连接数据集的时候将会产生大量的网络消耗。 问题 需要考虑在MapReduce规避reduce的使用。 方案 通过将Map ...
2014-03-15 06:39 0 3158 推荐指数:
6.4.4 减小数据倾斜的性能损失 数据倾斜是数据中的常见情况。数据中不可避免地会出现离群值(outlier),并导致数据倾斜。这些离群值会显著地拖慢MapReduce的执行。常见的数据倾斜有以下几类: 数据频率倾斜——某一个区域的数据量要远远大于其他区域。 数据大小倾斜——部分记录 ...
6.1 测量MapReduce和环境的性能指标 性能调优的基础系统的性能指标和实验数据。依据这些指标和数据,才能找到系统的性能瓶颈。性能指标和实验数据要通过一系列的工具和过程才能得到。 这部分里,将介绍Hadoop自带的工具和性能指标。还将捎带介绍性能监控工具。 6.1.1 作业 ...
6.2 诊断性能瓶颈 有的时候作业的执行时间会长得惊人。想靠猜也是很难猜对问题在哪。这一章中将介绍如何界定问题,找到根源。涉及的工具中有的是Hadoop自带的,有的是本书提供的。 系统监控和Hadoop任务 在Hadoop的0.20.x版本中,并没有提供 ...
的数据分析工作。 在这一节中,有两个场景需要对MapReduce的排序行为进行优化。 次排序(S ...
4.3 抽样(Sampling) 用基于MapReduce的程序来处理TB级的数据集,要花费的时间可能是数以小时计。仅仅是优化代码是很难达到良好的效果。 在开发和调试代码的时候,没有必要处理整个数据集。但如果在这种情况下要保证数据集能够被正确地处理,就需要用到抽样了。抽样是统计学中的一个方法 ...
调优概述 大多数Spark作业的性能主要就是消耗在了shuffle环节,因为该环节包含了大量的磁盘IO、序列化、网络数据传输等操作。因此,如果要让作业的性能更上一层楼,就有必要对shuffle过程进行调优。但是也必须提醒大家的是,影响一个Spark作业性能的因素 ...
4.2.2 总排序(Total order sorting) 有的时候需要将作业的的所有输出进行总排序,使各个输出之间的结果是有序的。有以下实例: 如果要得到某个网站中最受欢迎的网址(URL),就需要根据某种受欢迎的指标来对网址进行排序。 如果要让最活跃的用户能够看到某张表,就需要 ...
一、数据倾斜发生的原理 原理:在进行shuffle的时候,必须将各个节点上相同的key拉取到某个节点上的一个task来进行处理,比如按照key进行聚合或join等操作。此时如果某个key对应的数据量特别大的话,就会发生数据倾斜。数据倾斜只会发生在shuffle过程中。常用的并且可能会触发 ...