Skip to content

大数据生态全景概览

什么是大数据

大数据(Big Data)通常用 4V 来描述其核心特征:

特征说明
Volume(体量)数据规模从 TB 到 PB 甚至 EB 级别
Velocity(速度)数据产生和处理的速度极快,要求实时或近实时响应
Variety(多样性)结构化、半结构化、非结构化数据并存
Veracity(真实性)数据质量参差不齐,需要清洗和校验

大数据技术栈全景图

┌─────────────────────────────────────────────────────────────────┐
│                        应用层 / 业务层                           │
│          BI 报表  ·  机器学习  ·  实时大屏  ·  数据 API          │
├─────────────────────────────────────────────────────────────────┤
│                      查询 & OLAP 引擎                            │
│        ClickHouse  ·  Doris  ·  Presto/Trino  ·  Hive           │
├──────────────────────────┬──────────────────────────────────────┤
│       批处理计算          │          流处理计算                   │
│  MapReduce · Spark Core  │  Flink · Spark Streaming             │
│  Spark SQL · Spark MLlib │  Kafka Streams                       │
├──────────────────────────┴──────────────────────────────────────┤
│                      消息队列 & 数据集成                          │
│              Kafka  ·  Flume  ·  Sqoop  ·  DataX                │
├─────────────────────────────────────────────────────────────────┤
│                         存储层                                   │
│   HDFS  ·  HBase  ·  Hive  ·  Delta Lake  ·  Iceberg            │
├─────────────────────────────────────────────────────────────────┤
│                    资源调度 & 协调                                │
│              YARN  ·  Kubernetes  ·  Zookeeper                  │
├─────────────────────────────────────────────────────────────────┤
│                      工作流调度                                   │
│                  Airflow  ·  DolphinScheduler                   │
└─────────────────────────────────────────────────────────────────┘

核心架构范式

Lambda 架构

Lambda 架构由 Nathan Marz 提出,将数据处理分为三层:

数据源

  ├──► 批处理层(Batch Layer)   ──► 批处理视图(Hive/Spark)
  │                                        │
  ├──► 速度层(Speed Layer)    ──► 实时视图(Flink/Kafka)
  │                                        │
  └──────────────────────────────► 服务层(Serving Layer)──► 查询
  • 批处理层:处理历史全量数据,结果准确但延迟高(小时级)
  • 速度层:处理最新增量数据,延迟低(秒级)但可能不完整
  • 服务层:合并批处理和速度层结果,对外提供查询

缺点:维护两套代码(批处理 + 流处理),复杂度高。

Kappa 架构

Kappa 架构由 Jay Kreps 提出,去掉批处理层,一切皆流

数据源 ──► Kafka(消息队列)──► Flink(流处理)──► 服务层 ──► 查询

                └──► 历史数据重放(调整 offset 重新消费)
  • 只维护一套流处理代码
  • 历史数据通过重放 Kafka 消息来处理
  • 适合数据量不是特别大、实时性要求高的场景

数据湖架构(现代 Lakehouse)

原始数据(ODS)──► 数据湖(Delta Lake / Iceberg)

                    ┌─────┴─────┐
                    │           │
                  Bronze      Silver      Gold
                 (原始层)   (清洗层)  (聚合层)

                                         BI / ML / API

主流技术栈对比

批处理框架

框架语言特点适用场景
MapReduceJava稳定,磁盘 I/O 多超大规模离线计算
SparkScala/Java/Python内存计算,速度快 10-100x批处理、交互式查询、ML
HiveSQL基于 MapReduce/Tez,易用数据仓库、SQL 分析

流处理框架

框架延迟吞吐状态管理特点
Spark Streaming秒级(微批)有限与 Spark 生态无缝集成
Flink毫秒级极高强大真正的流处理,精确一次语义
Kafka Streams毫秒级轻量,无需独立集群

OLAP 引擎

引擎查询延迟数据规模特点
ClickHouse毫秒~秒PB 级极致列式压缩,单表查询最快
Apache Doris毫秒~秒PB 级实时导入,MySQL 协议兼容
Presto/Trino秒~分钟无限制联邦查询,跨数据源
Hive分钟~小时PB 级成熟稳定,适合离线

数据流向全链路

业务系统(MySQL/Oracle)


   数据采集层
   Flume(日志)/ Sqoop(关系型DB)/ DataX(异构)/ Kafka(实时)


   原始数据存储
   HDFS(文件)/ Kafka(流)/ HBase(KV)


   数据处理层
   Spark(批)/ Flink(流)/ Hive(SQL)


   数据仓库 / 数据湖
   Hive ODS/DWD/DWS/ADS / Delta Lake / Iceberg


   OLAP 查询层
   ClickHouse / Doris / Presto


   应用层
   BI 报表 / 机器学习 / 实时大屏 / 数据 API

学习路径建议

阶段一:基础(1-2 个月)

  1. Linux 基础 + Shell 脚本
  2. Java/Scala/Python 基础
  3. HDFS + YARN + MapReduce 原理
  4. Hive SQL 实战

阶段二:核心(2-3 个月)

  1. Spark Core → Spark SQL → Spark Streaming
  2. Kafka 消息队列
  3. Zookeeper 协调服务
  4. HBase 列式存储

阶段三:进阶(2-3 个月)

  1. Flink 流批一体
  2. ClickHouse / Doris OLAP
  3. Delta Lake / Iceberg 数据湖
  4. Airflow 工作流调度

阶段四:工程化(持续)

  1. 集群部署与运维
  2. 性能调优
  3. 监控体系建设
  4. 数据质量管理

建议

先把 Spark + Kafka + Hive 这条主线打通,能做完整的离线数仓项目,再扩展 Flink 实时链路。

本站内容由 褚成志 整理编写,仅供学习参考