大数据组件
Spark、Kafka、Hadoop 生态概览。
35 分钟
大数据组件
当数据量超出单机 MySQL/pandas 舒适区,分布式计算与消息系统进入视野。本课建立 Spark、Kafka、Hadoop 生态的地图,不要求立刻搭集群。
学习目标
- 理解何时从 ELT 升级到 Spark 等分布式引擎
- 掌握 Kafka 在数据管道中的角色(与业务 MQ 区分)
- 了解 Hadoop HDFS / YARN 的历史地位
规模与选型
| 数据规模 | 典型方案 |
|---|---|
| GB 级 | MySQL + Python/dbt |
| TB 级 | Spark / 云数仓 |
| 持续事件流 | Kafka + Flink / Spark Streaming |
CodeRoadMap 当前体量 MySQL + 批 ETL 足够;Kafka 作为事件与 CDC 扩展,见 /tracks/kafka-essentials。
Apache Spark
内存分布式计算,批 + 流统一 API:
# PySpark 伪代码
df = spark.read.jdbc(url, "cf_lesson", properties=props)
df.groupBy("track_id").count().write.parquet("s3://lake/lesson_counts")
| 组件 | 作用 |
|---|---|
| Spark SQL | DataFrame/SQL 转换 |
| Spark Streaming | 微批流处理 |
| Delta / Iceberg | 湖仓表格式(ACID) |
ETL 逻辑可从 pandas 平移到 Spark SQL,思维一致、规模不同。
Apache Kafka
分布式 commit log,数据工程里常见用途:
- 业务事件总线(订单、注册)
- CDC:数据库变更 → Topic → 数仓同步
- 日志采集缓冲
与 Redis Pub/Sub 对比见 kafka-vs-mq。深入消费、分区、lag 见整个 kafka-essentials track。
MySQL binlog → Debezium → Kafka topic "db.coderoadmap.cf_track"
→ Spark/Flink → staging 表
Hadoop 生态(概览)
| 组件 | 现状 |
|---|---|
| HDFS | 大量迁移到 S3/GCS 对象存储 |
| MapReduce | 被 Spark 取代为主力 |
| Hive | SQL on 大数据,仍常见于离线仓 |
知道名词即可;新项目优先 云对象存储 + Spark/Trino + 托管 Kafka。
与路线图的关系
- /roadmaps/data-engineer — Big Data 节点