如何用mapreduce处理数据倾斜问题

本篇内容主要讲解“如何用mapreduce处理数据倾斜问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何用mapreduce处理数据倾斜问题”吧!

我们提供的服务有:成都网站设计、成都做网站、微信公众号开发、网站优化、网站认证、香河ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的香河网站制作公司

map /reduce 程序执行时, reduce 节点大部分执行完毕,但是有一个或者几个 reduce
节点运行很慢,导致整个程序的处理时间很长,这是因为某一个 key 的条数比其他 key 多
很多(有时是百倍或者千倍之多),这条 key 所在的 reduce 节点所处理的数据量比其他节
点就大很多,从而导致某几个节点迟 迟运行不完,此称之为数据倾斜.
解决方法:
(1)设置一个 hash 份数 N,用来对条数众多的 key 进行打散。
(2)对有多条重复 key 的那份数据进行处理:从 1 到 N 将数字加在 key 后面作为新 key,
如果需要和另一份数据关联的话,则要重写比较类和分发类。如此实现多条 key 的平均分发。
(3)上一步之后, key 被平均分散到很多不同的 reduce 节点。如果需要和其他数据关联,
为了保证每个 reduce 节点上都有关联的 key,对另一份单一 key 的数据进行处理:循环的
从 1 到 N 将数字加在 key 后面作为新 key
用上述的方法虽然可以解决数据倾斜,但是当关联的数据量巨大时,如果成倍的增长某
份数据,会导致 reduce shuffle 的数据量变的巨大,得不偿失,从而无法解决运行时间慢的
问题.
在 两份数据中找共同点,比如两份数据里除了关联的字段以外,还有另外相同含义的字段,
如果这个字段在所有 log 中的重复率比较小,则可以用这个字段作为计算 hash 的值,如果
是数字,可以用来模 hash 的份数,如果是字符可以用 hashcode 来模 hash 的份数(当然数
字为了避免落到同一个 reduce 上 的数据过多,也可以用 hashcode),这样如果这个字段
的值分布足够平均的话,就可以解决上述的问题。
解决方法: 1. 增加 reduce 的 jvm 内存 2. 增加 reduce 个数

到此,相信大家对“如何用mapreduce处理数据倾斜问题”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

分享题目:如何用mapreduce处理数据倾斜问题
URL分享:https://www.cdcxhl.com/article14/jssdde.html

成都网站建设公司_创新互联,为您提供外贸建站网站营销网站建设外贸网站建设面包屑导航商城网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站制作