首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >hive执行引擎的发展历程

hive执行引擎的发展历程

原创
作者头像
用户11949495
发布2025-12-11 17:09:13
发布2025-12-11 17:09:13
610
举报
文章被收录于专栏:大数据大数据

一、历史与现状

Hive的执行引擎经历了几个重要阶段:

MapReduce时代(早期默认)

最初,Hive将SQL语句转换为MapReduce作业来执行

这是Hive的经典执行方式,但MapReduce执行速度较慢,有较高的延迟

Tez时代(重要改进)

后来,Hive引入了Apache Tez作为可选执行引擎

Tez通过优化任务执行流程,避免了MapReduce的中间结果频繁落盘,性能显著提升

这是Hive性能的一个重要里程碑

Spark时代(现代选择)

从Hive 1.1.0版本开始,Hive正式支持Apache Spark作为执行引擎

这确实意味着Hive可以将SQL查询转换为Spark作业来执行

Spark基于内存计算,通常比MapReduce快10-100倍

当前的多引擎支持

现在Hive支持多种执行引擎,您可以根据需求选择:

-- 在Hive中设置执行引擎

-- 1. 使用MapReduce(传统但较慢)

SET hive.execution.engine=mr;

-- 2. 使用Tez(性能较好)

SET hive.execution.engine=tez;

-- 3. 使用Spark(现代,性能最优)

SET hive.execution.engine=spark;

二、技术架构对比

# Hive on Spark的工作流程

HiveQL (SQL)

→ Hive Driver (解析SQL)

→ Hive 优化器 (逻辑优化)

→ 物理执行计划

→ Spark 转换器 (将计划转为Spark的RDD/DataFrame操作)

→ Spark Job (在YARN上运行)

→ 结果返回Hive

# Hive on MapReduce的工作流程

HiveQL (SQL)

→ Hive Driver

→ 优化器

→ MapReduce作业 (多个Map和Reduce阶段)

→ 结果返回

三、核心要点总结

多引擎支持:Hive现在已经不局限于单一执行引擎,它可以配置为使用MapReduce、Tez或Spark

Spark是首选:在实际生产环境中,Hive on Spark已成为许多企业的首选配置,因为它提供了最好的性能和扩展性

配置灵活:您可以根据集群资源和查询特性选择最合适的执行引擎

底层差异:无论使用哪种引擎,Hive的上层接口(HiveQL、元数据管理、UDF等)保持一致,用户无需关心底层实现

实际应用建议

查询性能要求高​ → 配置Hive使用Spark引擎

实时性要求高​ → 考虑使用Impala或Spark SQL(但Hive on Spark也相当快)

兼容性和稳定性​ → 如果集群已有稳定的Spark环境,Hive on Spark是最佳选择

批处理ETL​ → Hive on Spark或Tez都能很好地胜任

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档