数仓工具—Hive进阶之优化map任务数量(9)

控制 map 任务数量

为什么要控制 map 数量

我们先来了解下什么情况要设置 map 数量。一般来讲,map 数量默认,不需要我们设置,一般情况下,Hive 自己就可以知道到底使用多少个map。

但是,当我们明确知道表的数据量不大,而 Hive 运行启动了几千个 map 的时候,就有必要减小 map 的数量了。好比 1000 个西瓜没必要安排 100 辆车去拉,安排 2 辆车就可以搞定了。

另一方面,当我们发现 map 数量不多,但 map 运行速度极慢的时候。这时可以看一下数据,看看实际需求是不是很大?如果 Hive 启动的 map 数据比较少,就如同用 2 辆车去拉 10000 个西瓜,明显是不够的。

假设如果真遇到上面情况,那么如何调整 map 数量?我们通常会采用以下两种方式解决。

  • 第一种解决办法是增加 mapper 个数。可以设置 set mapred.map.tasks= 一个很大的数值, 需要比系统默认的 map 数量大。
  • 第二种解决办法是减少 mapper 个数。set maperd.min.split.size= 一个数字,该数值单位是字节,比如设置 1GB,即为 1024000000,因为默认一个 mapper 是 64MB,这样设置就可以让一个 mapper 处理 1GB 数据,自然 mapper 的数量也就减少了。

输入数据对map 数的影响

  1. 假设输入目录下有1个文件a,大小为780M,那么hadoop会将该文件a分隔成7个块(6个
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不二人生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值