一、批处理到内存计算
批处理时代(2006-2012)
- MapReduce框架占据主导
- 典型场景:夜间ETL、日志分析、数据清洗
- 性能瓶颈:中间结果需落盘、任务调度开销大
Spark革命(2013)
- 创新点:RDD内存计算、DAG执行计划、多语言支持
- 性能提升:
- 迭代算法:快100倍
- 交互式查询:快10-100倍
- 批处理作业:快10-30倍
生态演进
- Cloudera Impala(2013):首个开源MPP SQL引擎
- Facebook Presto(2013):支持多种数据源
- Apache Drill(2015):支持半结构化数据
二、离线到实时计算
离线计算时代
- T+1模式:当日处理前一天数据
- 适用:每日报表、历史分析、ML模型训练
实时流计算兴起
- Apache Storm:亚秒级延迟,但只支持”至多一次”语义
- Lambda架构:批处理层+速度层+服务层(需维护两套代码)
新一代流处理
| 技术 | 特点 | 延迟 |
|---|
| Spark Streaming | 微批处理,精确一次 | 秒级 |
| Apache Flink | 原生事件驱动,毫秒级 | 毫秒级 |
典型应用场景
| 场景 | 技术 | 延迟 |
|---|
| 离线分析 | Hadoop | 小时/天级 |
| 准实时 | Spark | 秒/分钟级 |
| 实时处理 | Flink | 毫秒级 |
三、从单体到云原生架构
传统单体架构局限
架构演进
- YARN:资源池化、多框架支持、动态分配
- 云原生:Kubernetes编排、存算分离、Serverless
主流云服务
| 服务商 | 存储 | 计算 |
|---|
| AWS | S3 | EMR on EKS |
| Azure | Blob | HDInsight |
| GCP | GCS | Dataproc |
技术演进总结
三大时代
| 时代 | 时间 | 核心技术 | 特点 |
|---|
| Hadoop批处理 | 2006-2013 | MapReduce | PB级离线,分钟级延迟 |
| Spark内存计算 | 2014-2018 | RDD | 性能提升10-100倍 |
| Flink实时计算 | 2019至今 | Flink | 毫秒级,批流统一 |
当前趋势
- 架构融合:批流一体、Lambda向Kappa演进
- 云原生:Serverless化、存算分离
- 智能增强:MLOps、实时特征计算