轻松入门大数据 第11章 入门到进阶:如何快速学会Hive调优 11.1 Hive调优 11.1.12 Hive如何设置合理的MapTask数量

文章介绍了如何进行Hive调优,特别是关注点在于如何合理设置MapTask的数量。MapTask的数量由文件个数、文件大小和Block大小决定。作者提到,虽然更多的MapTask不一定更好,但可以通过调整`mapreduce.input.fileinputformat.split.maxsize`参数来影响其数量。在示例中,将该参数减小可以增加MapTask的数目。通常在生产环境中,MapTask的数量不会轻易改动。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

轻松入门大数据

在这里插入图片描述

第11章 入门到进阶:如何快速学会Hive调优

11.1 Hive调优
  1. 抓取策略
  2. 严格模式
  3. 本地模式
  4. 排序
  5. 推测执行
  6. Mapper和Reducer个数设置
  7. 数据倾斜
11.1.12 Hive如何设置合理的MapTask数量

【关于MapTask数量的合理设置问题】

在我们讲MR 的时候就已经学到了

MapTask 的数量 是在 FileInputFormat 中算出来的

看到我们的工程【因为重装过(忘记拿出来了),所以以前写过的东西,就没贴出来了,主要是看看源码】

在这里插入图片描述

就这个方法,计算切片数量的。

通常情况下,以128M 为例:

780   6个128 + 1个小的  == 7个MapTask
	
如果一个文件夹下有三个文件,那就是下面的分片总数【最大值】:
	10m   1
	20m    1
	150m   2

总之,影响MapTask个数的因素:总文件个数、文件大小、block大小

MapTask ReduceTask都是以JVM进程的方式运行的

【问题】

  • MT 越多越好 ? x

  • 一个MT接近128M就行了? x

    一个大小120M的文件,但是业务非常复杂 ==> 增加MapTask数量

【总之都是一个相对问题】

演示:

现在的本地没开的情况下:

在这里插入图片描述

执行:select count(1) from emp;

在这里插入图片描述

在这里插入图片描述

OK, 一个mapper,一个reducer

在这里插入图片描述

如何增加?

设置参数:mapreduce.input.fileinputformat.split.maxsize

默认值是:

在这里插入图片描述

我们搞小一点,比如,直接给个100

在这里插入图片描述

OK, 再试一次

在这里插入图片描述

这次算出来就有7 个了

【当然一般在生产环境中,mapper 的数量一般我们都不会动的,知道怎么调就OK了】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

祝我天天开心,平安健康

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

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

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

打赏作者

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

抵扣说明:

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

余额充值