Hive是什么
Apache Hive 是一个面向大规模数据的SQL数据仓库系统。它把分布式存储中的文件组织成表,并允许用户通过SQL完成数据查询、汇总和分析。Hive 的核心价值是:用接近传统数据库的 SQL,处理传统数据库难以承载的海量数据。
Hive 负责”怎么定义、怎么查、怎么管理海量数据”,底层存储和计算则由其他系统承担。
1. Hive架构
用户 / 应用
┌─────────────────────┐
│ Beeline / JDBC/ODBC │
│ BI工具 / SQL脚本 │
└──────────┬──────────┘
│ SQL
▼
┌─────────────────────┐
│ HiveServer2 │
│ 连接、会话、认证 │
└──────────┬──────────┘
▼
┌─────────────────────┐
│ Driver / Compiler │
│ 解析 → 优化 → 执行计划│
└──────┬────────┬─────┘
│ │
▼ ▼
┌──────────┐ ┌──────────────┐
│ Metastore│ │ 执行引擎 │
│ 元数据 │ │ Tez / MR │
└────┬─────┘ └──────┬───────┘
│ │
▼ ▼
┌──────────┐ ┌──────────────┐
│ 元数据DB │ │ YARN │
│ MySQL等 │ │ 资源调度 │
└──────────┘ └──────┬───────┘
▼
┌──────────────┐
│ HDFS / 云存储 │
│ ORC / Parquet│
└──────────────┘
Hive 官方将 Driver、Compiler、Metastore、SerDe 和执行框架列为核心组成部分;现代部署通常通过 HiveServer2 接收客户端请求,并由 Tez 或 MapReduce 等执行引擎完成计算。
1.1.SQL是怎么执行的
SELECT province, COUNT(*)
FROM orders
WHERE dt = '2026-09-04'
GROUP BY province;
为例:
提交 SQL:用户通过 Beeline、JDBC 或 BI 工具发送查询。
解析与编译:Hive将SQL解析为语法树,检查表、字段和权限,并生成执行计划。
读取元数据:从Metastore获取表结构、分区位置、文件格式等信息。
优化计划:例如利用分区条件
dt = '2026-09-04',减少需要扫描的数据。提交执行:执行计划交给Tez 或 MapReduce 等引擎运行。
扫描与聚合:读取数据文件,过滤、分组、统计。
返回结果:结果通过 HiveServer2 返回客户端。
2.Hive数据组织方式
2.1数据库 → 表 → 分区 → 数据文件
database
└── table
└── partition: dt=2026-09-04
└── partition: province=Tokyo
└── ORC / Parquet / CSV 文件
Hive 的数据组织层级包括数据库、表和分区。分区用于按某些字段组织数据,常用于时间、地区等维度。
2.2文件格式
Hive 并不要求一种固定的“Hive 文件格式”,可以使用 CSV、TSV、ORC、Parquet 等格式。生产数仓中常见的是 ORC / Parquet + 压缩 + 分区。
3. Hive应用场景
3.1离线数仓与ETL
将日志、业务库、埋点等数据加工成统一的明细层、汇总层和主题数据集市。
例如:ODS → DWD → DWS → ADS。
3.2报表与经营分析
按天、周、月统计销售额、用户数、订单数、转化率等指标。
例如:每日经营报表、区域销售分析、财务汇总。
3.3海量日志与行为分析
对网站访问、App 埋点、服务器日志、广告曝光等进行批量统计。
例如:UV/PV、留存、漏斗、渠道效果分析。
3.4数据准备与特征工程
为机器学习、推荐系统、风控系统准备大规模训练数据和特征。
例如:用户画像、行为特征、训练样本生成。
3.5数据湖与统一元数据管理
在 HDFS 或云对象存储上管理海量表数据,为 Hive、Spark、Impala 等工具提供共享元数据。
例如:数据湖表目录、跨引擎查询、湖仓数据管理。
这些场景对应 Hive 官方定位的 ETL、报表、数据分析和大规模数据管理能力。Hive Metastore 也可作为现代数据湖中的中心元数据仓库。
4.典型企业数据链路
业务数据库 / 日志 / Kafka
│
▼
数据采集
│
▼
HDFS / 对象存储
│
▼
Hive ODS 层
│
▼
Hive DWD 层
清洗、去重、标准化
│
▼
Hive DWS 层
主题汇总、指标计算
│
▼
Hive ADS 层
报表、分析、数据服务
│
▼
BI / Spark / SQL查询
核心思想:Hive不是整个大数据平台,而是数仓中的 SQL 处理与数据管理层。