走进大数据丨 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之数据倾斜的主要内容,如果未能解决你的问题,请参考以下文章