Hive 如何增加或减少Map/Reduce 的数量

HIVE 使用中调整MAP 和 REDUCE 数量
本次经过参考很多文档,和在集群中的实践,我把最后的成功结果整理了下。

最后能够明显改变计划的MAP 和 REDUCE数量的方法
调整如下两个参数
**set hive.exec.reducers.bytes.per.reducer = 52428800; – 每个reduce 可以处理的字节长度
set mapred.max.split.size=52428800; – 每个切片可以处理的字节长度 **

  • 还有两个比较直接的方法
  • set mapred.reduce.tasks=10; – 设置reduce的数量
  • set mapred.map.tasks =10 ; – 设置map的数量

但是这两个方法通用性比较差,无法适用其他数据处理场景。

  • 实际适用记录
  • 输入文件,三个文件,总大小1G。
  • 在这里插入图片描述

默认下 按hdfs block大小划分,dfs.blocksize = 256M
每个文件 Size/256≈1.4 则分两个切片 2 。 总共需要 2*3 =6 个map
在这里插入图片描述

设置后数量为 20个 set hive.exec.reducers.bytes.per.reducer = 52428800;
set mapred.max.split.size=52428800;
切片数量计算:400047393/52428800 ≈ 7.63
按这个算法其实应该算出来有24个,但是为什么最后是20个,我还没想明白 但是调高map数量目的已经达到,以后有机会再研究

在这里插入图片描述

  • Reduce数量调整
  • 这个就相对简单了
  • set hive.exec.reducers.bytes.per.reducer = 52428800
    设置每个reduce 处理文件最大字节长度,可以增加或减少Reduce数量。

设置后数量
调整后
默认数量
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值