Hive 深度解析专栏导览
专栏定位
这个专栏面向负责维护 Hive MR/Tez 生产集群的 Data Infra / SRE 工程师。
市面上大多数 Hive 学习资料停留在”怎么写 HQL”和”建表/分区/分桶”的使用层面,对 HiveServer2 内部如何处理并发请求、Hive Metastore 的元数据模型是什么样的、一条 SQL 究竟经历了哪些编译阶段才变成 MR/Tez 任务——这些生产中真正需要的知识,往往一笔带过。
当 HiveServer2 出现 OOM、HMS 连接被耗尽、Tez DAG 卡在某个 Vertex 迟迟不结束时,你需要的不是”如何写 GROUP BY”,而是对整个技术栈的深度认知。这个专栏试图填补这个空白。
技术版本
- Hive:3.1.x(主线,兼容说明 Hive 2.x 的差异)
- 执行引擎:MapReduce(YARN)+ Tez(主要关注点)
- 元数据存储:MySQL 8.x + HMS 3.x
- 认证:Kerberos(MIT KDC / FreeIPA)
- Hadoop:3.3.x
专栏目录
| 序号 | 文章标题 | 核心主题 |
|---|---|---|
| 01 | HiveServer2 架构深度解析 | Thrift 服务架构、Session 生命周期、HS2 HA |
| 02 | Hive Metastore 深度解析 | HMS 元数据模型、MySQL Schema、HMS HA |
| 03 | SQL 编译全链路 | HQL→AST→Operator Tree→逻辑优化 |
| 04 | 执行引擎对比:MR vs Tez | MR 局限、Tez DAG 模型、Container 复用 |
| 05 | 查询优化器:RBO 与 CBO | 优化规则集、Calcite CBO、统计信息 |
| 06 | Join 深度解析 | 五种 Join 策略的实现机制与选择条件 |
| 07 | 分区与分桶 | 物理组织原理、动态分区、元数据膨胀 |
| 08 | 文件格式与存储优化 | ORC/Parquet/压缩的工程选择 |
| 09 | UDF 开发与执行机制 | GenericUDF/UDAF/UDTF、类加载隔离 |
| 10 | Hive on Tez 调优 | DAG 诊断、资源配置、倾斜处理 |
| 11 | HiveServer2 生产运维 | Kerberos、连接池、JVM 调优、监控 |
| 12 | 故障排查手册 | HS2→MR/Tez 完整诊断链路 |
推荐阅读路径
运维工程师(紧急排障):12 → 11 → 01 → 02
理解 SQL 执行原理:03 → 04 → 05 → 06
性能调优:05 → 06 → 07 → 08 → 10
完整通读(推荐):01 → 02 → 03 → 04 → 05 → 06 → 07 → 08 → 09 → 10 → 11 → 12
关联专栏
- YARN:Tez 任务在 YARN 上运行,理解 YARN 资源调度是理解 Tez 性能的前提
- HDFS:Hive 表数据存储在 HDFS
- Spark SQL:Hive 与 Spark SQL 的 Catalyst 优化器设计高度相似
- Iceberg:从 Hive 表到数据湖表格式的演进
- Trino:TrHive Connector 查询 Hive 数据
- Kerberos 安全认证:HiveServer2 的认证与授权
- HiveServer2 Kerberos 故障案例、HiveServer2 UDF 泄漏故障案例