走进大数据丨 MapReduce之数据倾斜

Posted ItStar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了走进大数据丨 MapReduce之数据倾斜相关的知识,希望对你有一定的参考价值。

数据倾斜是什么 


某一个区域的数据远远大于其他区域,就是数据倾斜


map端和reduce端都有可能发生数据倾斜


map端会让多样化的数据集处理效率更低

reduce端常常源于mapreduce默认分区器

数据倾斜会使mao和reduce的任务执行时间延长,也会让需要缓存数据集的操作占用更多的内存资源


先在map端查看那些键存在数据倾斜


在reduce方法中加入记录map输出键详情情况的功能

在代码里实现追踪每个键的最大值,为了减少追踪量,可以设置数据量阀值,值追踪那些数据量大于阀值的键,并输出到日志中

跟踪倾斜数据是了解数据的重要一步,也是mr作业的基础

减小reduce端数据倾斜

reduce端数据倾斜一般是map的输出数据中存在的数据评率倾斜,也就是不分键的数据量大于其他键


抽样和范围分区


hadoop的默认分区是基于map输出键的哈希值分区,切数据分布比较均匀有可能出现数据倾斜;使用分区器要首先了解数据的特性;可以通过对原始数据进行抽样的到结果集来预设分区边界值.TotalOrderPartitioner中范围分区器可以通过预设分区边界进行分区,因此能很好的矫正数据中部分键的倾斜问题




以上是关于走进大数据丨 MapReduce之数据倾斜的主要内容,如果未能解决你的问题,请参考以下文章

hive数据倾斜及处理

MapReduce数据倾斜的解决方式

大数据数据倾斜问题与企业级解决方案

大数据数据倾斜问题及策略

数据倾斜的原因和解决方案

大数据优化之数据倾斜