大数据引擎对比
问题
Hive、Spark、Flink、Presto/Trino 如何选型?
答案
全景对比
| 维度 | Hive | Spark | Flink | Presto/Trino |
|---|---|---|---|---|
| 定位 | 离线数仓 | 通用计算 | 流处理 | 交互查询 |
| 延迟 | 分钟~小时 | 秒~分钟 | 毫秒~秒 | 秒 |
| 计算模型 | MapReduce/Tez | DAG 内存计算 | 流处理 | MPP Pipeline |
| SQL 支持 | HiveQL | Spark SQL | Flink SQL | ANSI SQL |
| 生态 | Hadoop 核心 | 最广泛 | 流处理首选 | 即席分析 |
| 学习曲线 | 低(SQL) | 中 | 中高 | 低(SQL) |
按场景选型
典型组合方案
| 方案 | 组合 | 适用 |
|---|---|---|
| 经典离线 | Hive + Spark + Presto | 离线为主 |
| 流批一体 | Flink + Kafka + Hive | 实时 + 离线 |
| 轻量分析 | Trino + ClickHouse | 快速查询 |
| 全面方案 | Flink(实时) + Spark(离线) + Trino(查询) | 大型公司 |
数据分析师的建议
- 写 SQL 为主:Hive SQL / Spark SQL / Flink SQL 语法大同小异
- 即席分析:优先用 Trino(快)
- 复杂处理:学一些 PySpark(DataFrame API)
- 不需要精通底层:了解原理,知道何时用什么即可
常见面试问题
Q1: 你们公司用什么大数据引擎?为什么?
答案模板:
- 离线 ETL 用 Spark(性能好,比 Hive 快)
- 实时计算用 Flink(秒级延迟,Exactly-Once)
- 即席查询用 Trino(BI 工具直连,秒级响应)
- 数据存储在 Hive/HDFS 上(成熟、稳定)
Q2: Spark 和 Flink 怎么选?
答案:
- 纯离线场景:Spark(更成熟、生态更丰富)
- 纯实时场景:Flink(真流处理、低延迟)
- 流批一体:Flink(Flink SQL 统一处理)
- ML 场景:Spark(MLlib 更成熟)
相关链接
- Hive - 离线数仓引擎
- Spark - 通用计算引擎
- Flink - 流处理引擎
- Presto/Trino - 交互查询引擎