网易首页 > 网易号 > 正文 申请入驻

一个被忽视的 Hive SQL 优化技巧,让查询速度提升 11 倍

0
分享至

Hive SQL 慢起来真是要命。跑一分钟还能忍,一跑十几分钟甚至更久,业务方过来问「你的数据怎么还没出来」,那种感觉,懂的都懂。

最近就遇到这么个真实案例——一个 Hive SQL 脚本,短的时候一分多钟,长的时候能跑到十几分钟,而且极其不稳定。查了一圈,最终只调了两个参数,把 447 秒干到了 39 秒,提升了整整 11 倍。

讲真,这事儿没有多高深,但背后的思路值得聊聊。

别上来就瞎调。第一步永远是看慢在哪里。

Hive 在 Tez 引擎下的执行链路大致是:编译 SQL → 生成物理计划 → 向 YARN 申请资源 → 提交 DAG → 执行 DAG。绝大多数时间都耗在最后一步「Run DAG」上,这是正常的,毕竟计算就在这一步发生。

但有个坑——有时候 YARN 资源紧张,申请 AM 就卡半天。如果不看总体执行日志,你可能会以为是 SQL 本身的问题,实则是在排队等资源。

所以先看日志,确认瓶颈到底在哪一层。

找到瓶颈:MAP1 只开了 8 个 task

我这边的 SQL 主要是一张事实表关联多张维表,union 后写入目标表。通过 explain 拿到执行计划,发现三段子查询分别对应 MAP1、Reducer8 和 Reducer16。

一看运行日志,问题一目了然:

MAP1 耗时 439 秒,但只开了8 个 task。而 Reducer8 和 Reducer16 分别只有 4 秒和 3 秒就跑完了。



所以瓶颈就是 MAP1,原因很简单——并行度不够。说白了,8 个人干的活,你让 8 个人干,你让一堆人等着,能快才怪。

为什么只有 8 个 task?

查了一下主表的元数据:89 个分区,522 个小文件,总行数 2170 万,总数据量约 4.6 GB。

关键问题是小文件太多,522 个文件平均每个才 8MB 左右。虽然 Hive 的 CombineHiveInputFormat 会自动合并小文件,但 Tez 会重新打包数据切片动态调节 task 数量。默认情况下,它觉得这些文件够小了,不需要开太多 task。

解决方案是用和来控制单个切片的大小,从而间接调节 task 数:



调完之后,MAP1 的 task 数从8 个增加到 94 个,并行度直接拉满。



但注意别太贪心。切片太小、task 太多,意味着要申请大量 YARN 容器,不光你的任务自身有开销,还会挤占集群其他人的资源。64MB-128MB 这个区间是我测试下来比较合适的,具体根据你集群的情况来调整。

另一个关键优化:开启向量化

光增加并行度还不够,每个 task 内部的执行效率也要看。

这里就要聊到 Hive 的向量化执行了。传统的行式处理是一条一条地处理数据,CPU 利用率很低;向量化则是批量处理——默认每批 1024 行——能大幅提升 CPU 利用率。

开启方式很简单,加几行配置就行:



但有个坑要注意:向量化要求表格式是 ORC 或 Parquet 这种列式存储,而且有些函数不支持原生向量化。比如instr函数就是不支持的,它会迫使整个执行链路回退到行模式,导致你开了向量化也等于没开。

解决方案:把 instr 换成 like。比如 instr(col, 'something') > 0 可以等价替换成 col like '%something%'。因为 like 有对应的原生向量化版本,差别就在这里。



效果:447秒 → 39秒

两套优化打下去,最终效果:

  • 优化前:447 秒
  • 优化后:39 秒
  • 提速:约11 倍



讲道理,这个优化思路不复杂,但很多同学遇到 Hive SQL 慢的时候第一反应是「是不是数据量太大了?」或者「是不是要上 Spark 了?」——其实不一定。先看看并行度够不够、向量化开没开、有没有函数不支持向量化,这几个点排查下来,大多数场景不用换引擎也能解决问题。

几个可以记在小本本上的点

这次优化过程中还有一些额外的收获,一并分享了:

  1. 裁剪—— 别 select *,只取需要的列,减少 IO
  2. 分区裁剪——where 条件尽量用分区字段,不然全表扫描谁也救不了
  3. 尽早过滤——子查询或 CTE 里先把数据过滤掉,减少中间数据量
  4. 了解你的函数——有些看着无害的函数,可能让你的向量化执行白开了

当然,除了上面这些,还有数据倾斜、Reducer 并行度自动调节等方向可以深入。但以上几点是性价比最高的,花最少的时间拿最大的收益。

你手头的 Hive SQL 遇到过这种情况吗?有没有什么奇技淫巧分享一下?评论区聊聊。

声明:内容由AI生成

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
没想到,负债累累的前夫黄有龙,竟给50岁赵薇留下“一手好牌”

没想到,负债累累的前夫黄有龙,竟给50岁赵薇留下“一手好牌”

温一壶皎月
2026-10-03 10:50:52
又曝出轨大瓜,男子自曝妻子出轨班长5个月,班长只给他妻子买过情趣内衣,还曝光俩人大尺度聊天内容

又曝出轨大瓜,男子自曝妻子出轨班长5个月,班长只给他妻子买过情趣内衣,还曝光俩人大尺度聊天内容

汉史趣闻
2026-09-10 18:28:47
寿命与大便次数有关!研究表明:寿命长的人,每天排便在这个次数

寿命与大便次数有关!研究表明:寿命长的人,每天排便在这个次数

医学科普汇
2026-10-03 08:55:26
冯远征中年反悔丁克,48岁妻子拼命成全,最终选择治愈无数中年人

冯远征中年反悔丁克,48岁妻子拼命成全,最终选择治愈无数中年人

动物奇奇怪怪
2026-09-30 04:44:06
赵松源:这国家队,我还是回去念书吧

赵松源:这国家队,我还是回去念书吧

中场阴谋家
2026-10-03 15:57:34
票房破1亿,小沈阳《什么意思夫妇》发挥稳定,压不住了!

票房破1亿,小沈阳《什么意思夫妇》发挥稳定,压不住了!

可爱的巴比龙
2026-10-03 14:19:47
越南第三季度GDP同比增长9.95%

越南第三季度GDP同比增长9.95%

每日经济新闻
2026-10-03 09:09:03
全队被骂烂,偏偏冒出三个宝:李昊守门、杨希会想、毛伟杰能扛!

全队被骂烂,偏偏冒出三个宝:李昊守门、杨希会想、毛伟杰能扛!

王楔晓
2026-09-30 15:10:12
女子怀疑医生在其子宫装监听器,手机一放歌就异常!两次告上法庭

女子怀疑医生在其子宫装监听器,手机一放歌就异常!两次告上法庭

砚田文化
2026-09-18 08:34:48
岛内清算开始,国民党猛打赖清德,郑丽文动作很快,先拿一人开刀

岛内清算开始,国民党猛打赖清德,郑丽文动作很快,先拿一人开刀

胡同里有只猫A
2026-10-02 11:57:40
蒯曼一家人的合影,蒯曼手里捧着荣誉奖牌,笑容灿烂

蒯曼一家人的合影,蒯曼手里捧着荣誉奖牌,笑容灿烂

娱你同欢
2026-10-02 20:50:55
签了!中国和美国真签了!这次不是关税,也不是芯片,而是天然气

签了!中国和美国真签了!这次不是关税,也不是芯片,而是天然气

大卫聊科技
2026-09-20 13:27:56
压不住,首日票房4800万,《什么意思夫妇》走高,小沈阳赌对了!

压不住,首日票房4800万,《什么意思夫妇》走高,小沈阳赌对了!

草莓信箱
2026-10-02 04:08:46
李昊2次扑点!铜牌,国足追平第二好成绩,这一刻等待了整整28年

李昊2次扑点!铜牌,国足追平第二好成绩,这一刻等待了整整28年

侃球熊弟
2026-10-03 15:19:04
英特尔砍掉的118GB小硬盘,成了玩家圈里的抢手货

英特尔砍掉的118GB小硬盘,成了玩家圈里的抢手货

我是一个养虾人
2026-10-03 04:38:54
价格猛降、跌破22万!特斯拉疯狂降价背后真相,刚提车车主血亏

价格猛降、跌破22万!特斯拉疯狂降价背后真相,刚提车车主血亏

热点一网打尽
2026-10-03 10:58:56
直接翻10倍!就一场队内赛,76人直接杀疯了!这就是老詹的魔力?

直接翻10倍!就一场队内赛,76人直接杀疯了!这就是老詹的魔力?

徐竦解说
2026-10-03 13:09:13
名古屋亚运会官方更正,中国金牌数从154枚更正为155枚!

名古屋亚运会官方更正,中国金牌数从154枚更正为155枚!

第五才子
2026-10-02 09:44:44
最后一笔 100 亿美元汇出去了!孙正义,彻底把命押给了美国!

最后一笔 100 亿美元汇出去了!孙正义,彻底把命押给了美国!

荐史
2026-10-03 13:59:56
台湾提和统两大条件,缺一不可!大陆已满足1条,马英九曾有预测

台湾提和统两大条件,缺一不可!大陆已满足1条,马英九曾有预测

锅锅爱历史
2026-09-24 21:37:04
2026-10-03 18:59:00
千纸鹤安安
千纸鹤安安
大自然的搬运工
152文章数 3关注度
往期回顾 全部

科技要闻

英伟达盘中创历史新高,市值逼近6万亿美元

头条要闻

特朗普核心内阁召开"极为罕见"会议 总统没来万斯主持

头条要闻

特朗普核心内阁召开"极为罕见"会议 总统没来万斯主持

体育要闻

这个讨论了一夏天的问题,马刺有答案了吗

娱乐要闻

马思纯一家爬山祈福!素颜出镜笑容甜

财经要闻

4亿台电视挂墙落灰 为何没人愿意开了?

汽车要闻

方程豹9月热销破4万 首款皮卡鲨鱼将于四季度上市

态度原创

亲子
教育
旅游
本地
公开课

亲子要闻

中韩双胞胎带中国哥哥逛韩国街道!

教育要闻

在分子和分母填上相等的数,使等式成立!

旅游要闻

金风启渝州 国庆焕华章,重庆文旅集团全域盛景燃动假日

本地新闻

中秋逛白塔寺,体验国医妙荟雅集

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版