- hive 基于 MapReduce 程序,它的执行顺序决定了 hive 语句的执行顺序
- 执行 from 加载,进行表的查找与加载
- 执行 where 过滤,进行条件过滤与筛选
- 执行 select 查询:进行输出项的筛选
- 执行 group by 分组:描述了分组后需要计算的函数
- map 端文件合并:map 端本地溢出写文件的合并操作,每个 map 最终形成一个临时文件,然后按列映射到对应的 reduceReduce 阶段:
- group by:对map端发送过来的数据进行分组并进行计算
- select:最后过滤列用于输出结果
- limit:排序后进行结果输出到HDFS文件
- 优化重点
- 使用分区剪裁、列剪裁,分区一定要加
- 少用 COUNT DISTINCT,group by 代替 distinct
- 是否存在多对多的关联
- 连接表时使用相同的关键词,这样只会产生一个 job
- 减少每个阶段的数据量,只选出需要的,在 join 表前就进行过滤
- 大表放后面
- 谓词下推:where 谓词逻辑都尽可能提前执行,减少下游处理的数据量
- sort by 代替 order by
hive执行顺序+优化
最新推荐文章于 2023-03-11 14:21:42 发布