数据倾斜---hadoop中的Reducer

1.数据倾斜:hash分区,有可能大量的key进入同一个Reducer

解决数据倾斜:
(1)//多个Reducer处理同一个分区
(2)自定义分区
(3)增加或者减少reducer的数量(hash分区有效)
(4)硬件上:增加机器的jvm内存
(5)去除噪音数据
(6)重新定义key:比如改变key中数据的顺序
比如先在传输的时候给key加一个随机数zhang->20-zhang在后面处理的时候,将随机数去掉,结果数据可以再进行一次运算
(7)Combiner:相当于在Mapper端提前干了Reducer的活,对相同的key提前进行聚合,也可以解决数据倾斜问题
(8)Reduce side join数据问题
Map side join

2.Join问题:
将多份数据进行关联处理时,框架提供的 join 操作一般会将所有数据根据 key 发送到
所有的 reduce 分区中去,造成大量的网络以及磁盘IO消耗,运行效率极其低下,
还可能造成数据倾斜,这个过程一般被称为 reduce-side-join。
当海量数据中匹配少量特定数据:

在这里插入图片描述

解决方式:将小表数据缓存到map端,这样map端获取大表数据后,和自身的小表数据做join,省去了reduce端的join过程,运行时间得到大量缩短,根据不同数据可能会有几倍到数十倍的性能提升,同时也可以解决数据倾斜问题

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值