题目
Hive 是什么?Hive 的优缺点
答案
推荐阅读下这篇文章:[Hadoop 生态里,为什么 Hive 活下来了?](https://www.infoq.cn/article/kmkmw04qakslsmwe0vqg)
Hive 是 **基于 Hadoop 的数据仓库工具**,最早由 Facebook 开发,用来解决在 海量结构化日志文件 上做统计分析时,**写 MapReduce 太麻烦的问题**。
可以把 Hive 理解成 **“在 Hadoop 上跑的 SQL 引擎”**:
核心概念:
1. **数据仓库工具**: Hive 本身不是数据库,它是一个数据仓库框架,存储依赖 HDFS,计算依赖 MapReduce、Tez 或 Spark。
2. **SQL 接口**: Hive 提供类 SQL 语言 —— **HiveQL**,用户可以用 SQL 写查询,Hive 会把它翻译成底层的 MapReduce(或 Spark/Tez)任务来执行。
3. **批处理系统**: Hive 的查询延迟较高(秒级到分钟级),适合大规模离线分析,而不是实时查询。
Hive 的主要功能:
- **数据存储**:数据放在 HDFS 上,可以是文本、Parquet、ORC 等格式。
- **数据查询**:使用 HiveQL(类 SQL)来查询,不用写 MapReduce。
- **元数据管理**:Hive 使用 **Metastore**(通常是 MySQL/PostgreSQL)来存储表的 schema、分区信息。
- **扩展性**:可以接入 Spark、Tez 等引擎来加速。
Hive 的适用场景
- ✅ 海量日志分析
- ✅ 数据仓库构建
- ✅ ETL(数据清洗、转换、加载)
- ❌ 不适合实时查询(延迟较高)
- ❌ 不适合高并发小查询(更适合用 Presto/Impala/ClickHouse)
