Hive 入门&架构原理

按「定义→架构→流程→核心概念→生产配置」梳理。


一、Hive 核心定义

  1. 定位:Hive 是 Facebook 开源的、基于 Hadoop 的数据仓库工具,提供类 SQL(HQL)查询能力,将结构化数据文件映射为表。
  2. 本质:Hive 是 Hadoop 的客户端工具,自身不存储数据、不执行计算;核心能力是「SQL 翻译 + 元数据管理」。
  3. 底层依赖:数据存储在 HDFS,计算默认由 MapReduce 实现(可切换为 Spark / Tez),任务运行在 Yarn 上。

二、四大核心架构模块

1. Client(用户接口层)

  • 作用:接收用户提交的 HQL,作为访问 Hive 的入口。
  • 两种形式:CLI(命令行终端,本地调试用)、JDBC/ODBC(远程访问,生产环境通过 HiveServer2 服务代理访问)。
  • 重点:HiveServer2 是生产环境的访问代理,负责权限控制、远程连接管理。

2. Metastore(元数据中心)

  • 作用:存储所有元数据,包括库名、表名、字段定义、分区信息、数据在 HDFS 的存储路径、表类型等。
  • 核心价值:Hive 读写数据的「目录索引」,Driver 执行 SQL 前必须先查询 Metastore 才能定位数据。
  • 存储介质:
    • 默认:Derby 嵌入式数据库,仅支持单客户端访问,只适合本地测试。
    • 生产标准:MySQL,支持多客户端并发访问,满足多人协作开发。

3. Driver(SQL 翻译执行器)

  • 作用:将 HQL 字符串一步步转化为可在 Hadoop 上运行的计算任务,是 Hive 的「大脑」。
  • 执行三大阶段: ① 解析阶段 :SQL Parser 生成抽象语法树(AST),Semantic Analyzer 做语义校验(表/字段合法性、权限校验)。 ② 优化阶段 :生成逻辑计划 → 逻辑优化(如谓词下推)→ 生成物理计划 → 物理优化(如 Join 算法选择、并行度调整)。 ③ 执行阶段:Execution 执行器将最终物理计划提交给 Yarn 启动任务。

4. Hadoop 层(存储计算底座)

  • 存储:HDFS,Hive 一张表对应 HDFS 一个目录,数据以文件形式存储。
  • 计算:默认 MapReduce,可切换 Spark / Tez 等引擎。
  • 调度:Yarn 负责资源分配与任务调度。

三、一条 HQL 的完整执行流程

  1. 用户通过 Client 提交 HQL 语句到 HiveServer2。
  2. Driver 接收语句,进行语法解析,生成抽象语法树。
  3. 语义分析器校验表、字段、权限,校验通过后继续。
  4. Driver 访问 Metastore,查询 SQL 涉及表的元数据(存储路径、结构等)。
  5. 生成逻辑执行计划,经过逻辑优化后生成物理执行计划。
  6. 执行器将物理计划提交给 Yarn,启动 MapReduce 任务去 HDFS 读写数据、完成计算。
  7. 计算结果返回 HDFS,再经 Driver 逐层返回给客户端。

四、核心概念辨析

1. 逻辑计划 vs 物理计划

  • 逻辑计划:描述「要做什么操作」,只定义步骤(扫描→过滤→分组→聚合),和底层计算引擎无关。
  • 物理计划:描述「具体怎么跑」,绑定具体计算引擎,定义 Map/Reduce 数量、Shuffle 方式、Join 算法等。

2. 内部表 vs 外部表

  • 内部表(管理表):Hive 完全管理元数据和数据文件,删除表时 HDFS 数据同步删除。
  • 外部表:Hive 只管理元数据,数据文件由外部系统管理;删除表时只删元数据,不删 HDFS 数据;适合多工具共享数据的场景。

五、生产环境标准配置

  1. Metastore 采用独立服务模式 + MySQL 存储,支持多用户并发。
  2. 通过 HiveServer2 提供远程 JDBC 访问,开启用户模拟做权限隔离。
  3. 计算引擎可切换为 Spark / Tez 提升性能,MapReduce 为默认兜底。
相关推荐
一条大祥脚2 小时前
【CS336】lecture5 GPU|算力缩放|架构|内存模型|执行模型|TPU
架构
吴建旭 智宅焕3 小时前
智能家居B端交付能力解耦架构:从全链路自持到全国交付基础设施接入
架构·智能家居
fundoit3 小时前
为什么需要 Access Token 和 ID Token 两个令牌
java·spring·架构·github·oauth2
小小龙学IT4 小时前
Go 语言 gRPC(grpc-go)深度解析
rpc·架构·golang·go
zmsup5 小时前
AI Agent 架构详解:从 ReAct、规划执行到多智能体协作
人工智能·架构·agent·运维工具·运维智能体
风寄巴山秋5 小时前
OpenBMC:Web 页面功能异常排查
运维·服务器·前端·架构
泡干脆面就番茄5 小时前
Hadoop基础入门到实战:从Python理解MapReduce到HDFS架构与集群搭建
hadoop
jason.zeng@15022076 小时前
(八)现有架构上新增一个通用Excel导出工具
python·架构·langchain·excel·llama
磁场转动100万匹7 小时前
Hive 学习第一天:搞懂它是什么,并搭好可用的环境
hive·hadoop·学习