hive面试题
- 人工智能
- 2025-09-17 01:21:01

Hive基础概念 1.1 Hive是什么?
基于Hadoop的数据仓库工具,支持类SQL(HiveQL)查询,底层转换为MapReduce/Tez/Spark任务。
核心功能:数据ETL、查询、分析;定位:OLAP(分析型),非OLTP(事务型)。
1.2 Hive与传统数据库的区别
特性 Hive 传统数据库 (如MySQL) 数据规模 PB级 GB/TB级 延迟 高(分钟级) 低(毫秒级) 事务支持 有限(Hive 0.14+支持ACID) 完善 存储 HDFS 本地磁盘 2. Hive架构与核心组件 2.1 元数据存储(Metastore)
存储表结构、分区、数据位置等信息,生产环境常用MySQL。 模式:内嵌模式、本地模式、远程模式(推荐)。
2.2 HQL执行流程
HQL → 解析器 → 编译器 → 优化器 → 执行引擎 → 结果。 3. Hive数据模型 3.1 内部表 vs 外部表
内部表:数据由Hive管理,删除表时数据连带删除。
外部表:仅删除元数据,数据保留在HDFS。
3.2 分区与分桶
– 分区表示例 CREATE TABLE logs (msg STRING) PARTITIONED BY (dt STRING);
– 分桶表示例 CREATE TABLE user_bucketed (id INT) CLUSTERED BY (id) INTO 4 BUCKETS;
| 维度 | 分区 | 分桶
|适用场景|按日期/地区过滤|JOIN优化、数据倾斜处理
Hive优化技巧 4.1 存储优化使用列式存储(ORC/Parquet)和压缩(Snappy)。
合并小文件: SET hive.merge.mapfiles=true; 4.2 数据倾斜处理
对倾斜Key添加随机前缀:
SELECT user_id, COUNT(*) FROM logs GROUP BY user_id + CAST(RAND() * 10 AS INT); 5. Hive高级特性 5.1 Hive事务 仅支持分桶表+ORC格式: CREATE TABLE txn_table (…) STORED AS ORC TBLPROPERTIES (‘transactional’=‘true’); 5.2 Hive on Spark
优势:内存计算、DAG优化,比MapReduce快10倍以上。 6. 常见面试问题 6.1 如何调优Hive查询?
分区/分桶、ORC格式、MapJoin、压缩数据。
6.2 Hive与HBase整合?
通过Hive-HBase Handler映射表,支持双向查询。
场景应用题 问题:如何设计每日用户日志分析? 方案:按日期分区:PARTITIONED BY (dt STRING)
使用ORC+Snappy压缩。
对高频用户分桶,处理数据倾斜。
上一篇
数据结构(初阶)(五)----栈
下一篇
【Spring】配置文件的使用