跳到主要内容

大数据引擎对比

问题

Hive、Spark、Flink、Presto/Trino 如何选型?

答案

全景对比

维度HiveSparkFlinkPresto/Trino
定位离线数仓通用计算流处理交互查询
延迟分钟~小时秒~分钟毫秒~秒
计算模型MapReduce/TezDAG 内存计算流处理MPP Pipeline
SQL 支持HiveQLSpark SQLFlink SQLANSI 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 上(成熟、稳定)

答案

  • 纯离线场景:Spark(更成熟、生态更丰富)
  • 纯实时场景:Flink(真流处理、低延迟)
  • 流批一体:Flink(Flink SQL 统一处理)
  • ML 场景:Spark(MLlib 更成熟)

相关链接