mapred任务性能优化本质上就是和shuffle搏斗-hive hadoop spark

本文探讨了Hive、Hadoop和Spark中的性能优化,尤其是针对shuffle操作和数据倾斜问题。提出了包括map端聚合、调整reduce任务数量和数据规模、以及使用广播和mapJoin等方法来减少shuffle次数和数据规模。同时,详细介绍了Hive中解决数据倾斜的多种策略,如map端预聚合、设置reduce任务的最大数据规模和优化参数。在Spark中,解决数据倾斜的方案包括在key上添加随机数、自定义partitioner、map端预聚合和手动重分区。
摘要由CSDN通过智能技术生成

hive中解决数据倾斜的思路

1.由key为null值造成的倾斜,将空置变成字符串加随机数

2.由group by造成的倾斜,map端聚合

set hive.groupby.skewindata=true;

hive.groupby.mapaggr.checkinterval = 100000 (默认)

hive.map.aggr.hash.min.reduction=0.5(默认)

3.控制reduce节点上的数据规模

set hive.optimize.skewjoin = true;  — 优化歪斜:true

set hive.skewjoin.key = skew_key_threshold (default = 100000)— 歪斜键阈值,数据行数

行数超过阈值的reduce节点上就不再接收新数据,map端发送到其他reduce节点上去

下面是设置单个reduce节点上最大数据规模,也可以设置reduce节点个数,根本目的和上面是一样的,不要让单台reduce上有太多数据

set hi

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值