Hive架构

一、介绍

Apache Hive是一款构建于Hadoop之上的开源数据仓库软件。它提供类似 SQL 的查询语言(HQL),能够将 SQL 语句自动转化为底层的分布式计算任务(如 MapReduce),从而让用户能够轻松地对存储在HDFS上的海量数据进行分析和处理。

二、架构及工作原理的讲解

其整体架构可以划分为四个核心层次基于上面的架构截图,Hive的整体架构可以划分为四个核心层次。

2.1用户接口层(HiveClient)

这是用户与Hive系统交互的入口,主要提供两种连接方式:

CLI(命令行界面):用户可以直接在终端中创建表**(如create table 表名(...))**或执行查询。

JDBC/ODBC:供外部应用程序或其他客户端通过标准的数据库连接协议接入。用户通过这两种接口,根据业务需求编写相应的HQL查询语句**(例如 select * from students;)**并提交给系统。

2.2元数据存储层(Metastore)

Metastore是Hive的重要支撑组件,主要负责管理Hive的元数据。

元数据:简单来说就是关于数据的信息。

存储内容:它记录了表与底层数据的映射关系,包括表名、表的拥有者、列/分区字段、表的类型(内部表或外部表)以及表所在的HDFS目录路径等信息。

底层数据库:默认情况下,元数据存储在自带的derby数据库中,但由于其局限性强,生成环境中通常推荐使用MySQL来存储元数据,以支持多用户并发访问。

2.3核心驱动层(Driver)

Driver是Hive的"大脑"。负责将用户提交的HQL语句转化为底层的分布式计算任务。它包含一个完整的处理流水线,将常见的操作(如select、where、group by等)转化为MapReduce模板。其内部组件工作流程如下:

1.SQL解析器:将接受到的SQL字符串转换为抽象语法树(AST)。

2.语义分析器:将AST进一步划分为查询块(QueryBlock),并进行语义校验(如检验表是否存在、字段是否正确)。

3.逻辑计划生成器:将语法树转化为逻辑执行计划。

4.逻辑优化器:对逻辑计划进行优化,例如进行谓词下推、分区裁剪等。

5.物理计划生成器:根据优化后的逻辑计划,生成由具体MapReduce任务组成的物理计划。

6.物理优化器:对物理计划进行进一步调优。

7.执行器:负责最终执行物理计划,并将计划结果返回给客户端。

2.4底层执行环境(Hadoop)

Hive本身不存储数据,也不直接进行计算,而是完全依赖于Hadoop生态系统:

HDFS:负责海量数据的分布式存储。

MapReduce & Yarn:负责分布式计算和资源调度。执行器将生成的物理计划提交给Yarn,由Yarn分配资源并在MapReduce框架中运行。

数据流向清晰可见:计算任务从HDFS读取数据原始数据,经过MapReduce/Yarn处理完成后,将结果数据写回HDFS,并最终反馈给HiveClient。

三、整体工作流程总结

当用户通过CLI或JDBC/ODBC提交一条HQL查询时,Driver会接收该请求,并依靠Metastore提供的元数据信息对SQL进行解析、校验和优化。随后,Driver将优化后的逻辑转化为物理执行计划,提交给底层的Hadoop(由Yarn调度,MapReduce执行)。执行过程中从HDFS读取数据,计算完成后再写回HDFS,最终由Driver将计算结果返回给发起请求的用户端。

相关推荐
海宇服务17 小时前
零信任架构实战:基于海宇全能小微企业报告构建自动化园区商户免押租赁资信核验网关
大数据·人工智能·架构·自动化
zhangfeng113318 小时前
6篇RAG核心论文的工程启示:Vector + Graph + Agent路由混合架构实战
人工智能·架构·llm·agent
Decay__19 小时前
09_MySQL 闪回与时间点恢复 —— binlog 回放、mysqlbinlog、PITR 与误删恢复
运维·数据库·sql·mysql·架构
代码方舟20 小时前
零信任架构实战:基于天远企业法人四要素高级版构建自动化电子印章授权与签约准入网关
人工智能·架构·自动化·区块链
DevMemo1 天前
2026 AI外呼系统技术选型:全链路延迟预算与集成成本实测,10个品牌的架构真相
人工智能·架构
EnCi Zheng1 天前
Agent 架构怎么选:从单 Agent 到多 Agent 编排的选型决策指南
架构
阿狸猿1 天前
事件驱动架构(EDA)的设计与应用
架构
硅基手札1 天前
CAN 技术系列 08 · CAN 控制器寄存器与 IP 架构
驱动开发·架构·嵌入式开发·通信协议·can总线
微三云 - 廖会灵 (私域系统开发)1 天前
企业级 SaaS 系统架构设计:单体、微服务还是模块化单体?技术选型实战
微服务·架构·系统架构