`
david.org
  • 浏览: 157225 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

MapReduce 数据分布倾斜性

 
阅读更多

 

数据分布倾斜性指的是数据分布过度集中于数据空间的某端,造成“头重脚轻”或者“比萨斜塔”等不均匀的分布特点。数据分布倾斜性将造成运算效率上的“瓶颈”和数据分析结果的“以偏概全”。


效率上的“瓶颈”

假如在大型商场中,共有A,B1,B2..B9十家店铺,其中A店铺中有99W商品,B1,B2.B9这九家店铺分别有1W商品。我们要统计商场中商品总数,计算初,采用HASHMAP作为存储结构,其中Key:店铺 Value:商品。我们的计算过程是先统计每个店铺的商品总数,最后将结果累加。可以发现,由于A99W商品,按照1+1的累积方式(假如1+1耗时1秒),我们要加99W1才能得到A店铺的商品总数(总耗时99W秒),而B1,B2.B9只需分别累加1W1(分别耗时1W秒),而为了得到商场中的商品总数,我们必须等待所有店铺都分别累计结束才能处理总和,显而易见,此时运算瓶颈便集中在A店铺的商品累计上。

这类状况经常发生在分布式运算过程中,比如Hadoop Job计算,因为map/reduce 过程中是以Key-value形式来处理数据,假如某key下的数据量太大,会导致整个计算过程中move/shuffle/sort的耗时远远高于其他key,因此该Key变成为效率“瓶颈”。一般解决办法是,自定义partitioner,对所有的Value进行自定义分组,使得每组的量较平均,从而解决时间瓶颈问题。


数据分析结果的“以偏概全”

同样使用上述的“商场”案例,并且在此基础上我们假设A店铺,B9店铺是卖低端商品,而B1,B2..B8是卖高端商品,销量较小。如果我们要根据商品销售状况分析店铺在买家当中的受欢迎程度。由于A店铺本身商品量大,而且定位的销售价位是属于薄利多销,如果只从销售量的考虑,我们会以为A店铺在商场中是最受买家欢迎的,造成“片面”的分析结果。

其实,遇到这种情况,我们首先的分析卖家性质和买家性质,并且使用相对量来作为评估值,比如A店铺卖低端商品,日销售量1W商品,1W/99W<1%, B9店铺卖低端商品,日销售量5K商品,5K/1W=50%,所以在低端买家中,低端商品店铺B9应该是最受欢迎的。

 

分享到:
评论

相关推荐

    云计算-MapReduce计算模型下数据倾斜处理方法的研究.pdf

    数据倾斜发生在Map或Reduce阶段,当某些键值对的数据分布极度不均,导致某些子任务处理的数据量远大于其他子任务,从而影响整体性能。特别是在数据连接操作中,如果某些键的出现频率远高于其他键,会导致数据倾斜,...

    基于 Hadoop 平台,使用 MapReduce 编程,统计NBA球员五项数据.zip

    日志分析可以帮助我们识别潜在问题,例如数据倾斜、内存溢出等。 总结起来,这个项目涵盖了 Hadoop 分布式系统的基础知识,包括 MapReduce 模型、数据存储(HDFS)、资源管理(YARN)以及数据处理和分析。通过实际...

    基于Mapreduce的气候数据分析.zip

    然而,它也有一定的局限性,如不适合实时或低延迟的数据处理,以及在数据倾斜问题上的挑战。对于这些问题,可以通过优化数据分布、引入更先进的计算框架(如Spark)等方式来解决。 总结来说,MapReduce在气候数据...

    数据倾斜解决方案之使用随机key实现双重聚合

    在大数据处理领域,数据倾斜是一个常见的问题,它发生在分布式计算环境中,当数据分布不均匀时,某些节点或分区上的数据量远超过其他节点,导致计算性能严重受阻。本主题将探讨如何通过使用随机key来实现双重聚合,...

    MapReduce研究现状 .zip

    2. **数据倾斜**:当某些键的值远多于其他键时,会导致相关Reduce任务处理时间过长。 3. **网络IO瓶颈**:大量数据在网络中传输可能导致带宽消耗过大。 4. **容错机制的开销**:虽然Hadoop有良好的容错性,但心跳...

    mapreduce综合应用案例 - 招聘数据清洗

    - **容错性和数据倾斜处理**:确保MapReduce作业的容错性,处理可能的数据倾斜问题。 通过以上步骤和技术要点的应用,该招聘公司能够高效地清洗大量简历数据,提高数据质量,进而优化招聘流程和决策支持。这不仅有...

    基于mapreduce的小型电影推荐系统

    8. **性能优化**:考虑到MapReduce处理大数据的特性,推荐系统设计时还需考虑性能优化,如合理设置Map和Reduce任务的数量,避免数据倾斜等问题,以确保系统的高效运行。 综上所述,这个项目涵盖了大数据处理、...

    Hadoop.MapReduce.v2.Cookbook pdf

    对于性能优化,书中将涵盖JobTracker与ResourceManager的对比,探讨如何调整作业参数以减少延迟、提高并行度,以及如何利用本地化和数据倾斜策略来提升整体性能。最后,书中可能还会讨论如何将MapReduce作业与其他...

    Data-Intensive Text Processing with MapReduce

    - **数据倾斜**:某些顶点可能具有大量的边,导致数据分布不均。 - **通信开销**:在处理过程中需要频繁交换顶点状态,增加了网络通信成本。 ##### 5.5 总结 通过MapReduce处理图数据不仅可以解决大规模图的问题,...

    基于mapreduce框架的房地产大数据统计分析的并发工具.zip

    2. 并发控制:利用Hadoop的作业调度器和资源管理器,合理分配任务,避免数据倾斜问题。 3. 性能优化:通过调整MapReduce作业的参数,如分区策略、排序算法、内存设置等,提升系统性能。 4. 结果可视化:将分析结果以...

    大数据常见问题之数据倾斜.pdf

    数据倾斜不仅出现在Hadoop MapReduce和Hive的执行中,也会在Spark Streaming和Spark SQL等实时计算场景中发生。 在Hadoop环境下,数据倾斜常常表现为Reduce阶段长时间停滞在99.99%,部分Reduce任务出现OOM错误,...

    【MapReduce篇08】MapReduce优化1

    数据倾斜是MapReduce优化中常见的问题,表现为某些Key的值远大于其他Key,导致部分Reducer负载过高。解决方法包括: 1. **抽样和范围分区**:通过抽样预设分区边界值,均衡数据分布。 2. **自定义分区**:基于业务...

    Hadoop-MapReduce实践示例

    例如,适当增加map任务的数量可以提高数据处理的并行度,而合理的数据分区则可以避免数据倾斜问题,即部分reduce任务处理数据过多导致执行时间过长。 5. MapReduce在不同数据集上的应用:MapReduce可以在不同类型的...

    MALK:一种高效处理大规模键值的MapReduce框架.pdf

    - 数据分区策略:合理的数据分区能够使得数据分布均匀,减少数据倾斜,从而提高处理效率。 - 负载均衡:确保计算任务能够在各个处理节点之间均匀分配,避免某些节点空闲而其他节点过载。 - 缓存和预取策略:为了...

    MapReduce矩阵乘法(Java)

    4. 分块策略:根据矩阵的大小合理划分Map和Reduce任务,避免数据倾斜。 在实现过程中,还需要注意错误处理和日志记录,确保程序的稳定性和可维护性。同时,测试和调优是必不可少的步骤,以确保算法在实际数据集上的...

    MapReduce基础实战.pdf

    - **数据倾斜处理**:通过预分区或自定义分区器等方式解决某些Reducer处理数据量过大的问题。 - **合并小文件**:将多个小文件合并成较大文件,以减少处理时间。 - **使用Combiner**:在Map阶段对中间结果进行局部...

    多核处理器中基于MapReduce的哈希划分优化.pdf

    再者,针对倾斜输入数据的问题,论文提出了数据倾斜优化策略。在实际数据集中,数据分布往往不均匀,这会影响哈希划分的效果。通过调整划分策略,算法能够适应倾斜的数据分布,使得每个处理器处理的数据量相对均衡,...

    改进型MapReduce(第二版).pdf

    改进型MapReduce针对数据倾斜的问题提出了一些解决策略,比如使用足够多的hash桶来分散key过于聚集的情况,或者在平衡阶段进行重hash以减小大的数据块。此外,对于key值单一的情况,可以通过按大小横切数据,使得一...

Global site tag (gtag.js) - Google Analytics