Hive 查询慢是非常常见的问题,根本原因通常是:Hive 本质是把 SQL 转成 MapReduce / Spark / Tez 任务在 Hadoop 上跑,不是传统关系型数据库。下面从 常见原因 → 对应优化方向 系统说明。
WHERE 分区过滤)✅ 优化:
WHERE dt = '2025-01-01'
TEXTFILE(最慢)✅ 优化:
STORED AS ORC
TBLPROPERTIES ("orc.compress"="SNAPPY")
✅ 优化:
SELECT * FROM a, b;
✅ 必须写 JOIN ON
COUNT(DISTINCT user_id)
✅ 优化:
GROUP BYhive.optimize.distinct✅ 优化:
SET hive.auto.convert.join=true;
✅ 强烈建议:
SET hive.execution.engine=tez;
-- 或
SET hive.execution.engine=spark;
✅ 检查:
yarn top
调整:
SET hive.fetch.task.conversion=more; -- 小查询直接读,不跑 MR
SET hive.vectorized.execution.enabled=true;
SET hive.cbo.enable=true;
✅ 表现:
✅ 解决:
你可以按这个顺序查:
如果你愿意,可以:
我可以直接帮你 定位并给出优化方案。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。