现代大数据技术栈核心知识总结

现代大数据技术栈核心知识总结

参考链接:https://golangguide.top

大数据领域技术很多,但不需要单纯记技术名称。理解大数据技术最好的方式,是搞清楚每项技术解决什么问题

整体可以分成:数据存储、数据传输、数据计算、数据组织、数据查询分析几个部分。


一、整体技术架构

一个典型的大数据系统可以简单理解为:

text 复制代码
业务系统 / MySQL / 日志
          │
          ↓
        Kafka
       数据传输
          │
     ┌────┴────┐
     ↓         ↓
   Spark      Flink
  批量计算    实时计算
     │         │
     └────┬────┘
          ↓
    HDFS / S3 / OSS
       大数据存储
          │
     Hive / Iceberg
       数据表组织
          │
     ┌────┴────┐
     ↓         ↓
ClickHouse   HBase
 OLAP分析    Key点查

可以简单记成:

Kafka 负责传,Spark/Flink 负责算,HDFS/对象存储负责存,Hive/Iceberg 负责组织,ClickHouse/HBase 负责不同场景的数据查询。


二、MapReduce:传统分布式批处理

MapReduce 是 Hadoop 时代经典的分布式计算模型

核心思想:

text 复制代码
大量数据
   ↓
  Map
拆分、处理
   ↓
 Shuffle
重新分发数据
   ↓
 Reduce
聚合、汇总
   ↓
最终结果

例如统计海量日志中每个城市的访问次数,可以把数据分给多台机器处理,最后汇总结果。

MapReduce 主要面向批处理

text 复制代码
准备好一批数据
      ↓
启动 Job
      ↓
分布式计算
      ↓
输出结果
      ↓
任务结束

由于任务调度、中间结果落盘、Shuffle 等开销较大,复杂任务效率相对较低。

目前新项目直接编写 MapReduce 程序已经比较少,但其 Map、Shuffle、Reduce、分区、数据倾斜等思想仍然非常重要。


三、Spark:现代分布式计算引擎

Spark 是目前主流的分布式大数据计算引擎之一。

相比传统 MapReduce,Spark 使用更加灵活的 DAG(Directed Acyclic Graph,有向无环图)计算模型,并尽可能减少不必要的中间数据落盘。

DAG 可以理解为:将一个完整的数据处理任务拆分成多个计算步骤,并按照数据依赖关系组织成一张有向无环图。

例如:

text 复制代码
读取数据
   ↓
过滤
   ↓
JOIN
   ↓
聚合
   ↓
排序
   ↓
输出

其中:

  • 有向:数据处理具有明确的先后方向;
  • 无环:计算流程不能出现循环依赖;
  • :多个计算步骤通过依赖关系连接起来。

Spark 会先根据代码生成 DAG,再根据 DAG 分析整个计算流程,将可以连续执行的操作进行优化和组合,最后划分为多个 Stage 和 Task,分发到集群中执行。

例如:

text 复制代码
读取数据 → 过滤 → 映射 → 聚合 → 输出

Spark 不一定在每一步都将中间结果写入磁盘,而是会尽量在内存中完成连续计算,从而减少磁盘 I/O,提高执行效率。

与 MapReduce 相比,MapReduce 通常将计算过程固定为 Map、Shuffle、Reduce 等阶段,复杂任务往往需要拆分成多个 Job,并在 Job 之间保存中间结果;而 Spark 可以通过 DAG 统一规划多个计算步骤,因此更适合执行复杂的数据处理流程。

例如:

text 复制代码
读取数据
   ↓
过滤
   ↓
JOIN
   ↓
聚合
   ↓
排序
   ↓
输出

Spark 可以统一规划整个计算流程,因此特别适合:

  • 大规模 ETL
  • 离线数据处理
  • Spark SQL
  • 数据分析
  • 机器学习数据处理

可以简单记忆:

Spark = 大规模数据的通用分布式计算引擎,批处理尤其常见。

Spark 也支持 Structured Streaming 等流式处理能力,所以"Spark = 只能批处理"并不准确。


四、Flink:实时流式计算

Flink 同样是分布式计算引擎,但它非常擅长实时流式计算。

传统批处理更接近:

text 复制代码
████████ 一批数据
        ↓
      处理
        ↓
      结果

而流处理:

text 复制代码
数据1 → 处理 → 结果
数据2 → 处理 → 结果
数据3 → 处理 → 结果
数据4 → 处理 → 结果
...

Flink Job 通常长期运行:

text 复制代码
Kafka
  │
  │ 数据不断产生
  ↓
Flink Job
  │
  │ 持续计算
  ↓
实时结果

典型应用包括:

  • 实时 GMV
  • 实时 DAU
  • 实时风控
  • 实时推荐
  • 实时用户画像
  • 实时数据大屏

因此可以简单记忆:

Spark → 批处理/通用计算常见

Flink → 实时流式计算尤其常见


五、Kafka:数据传输

Kafka 是一个分布式消息系统/事件流平台

在大数据架构中,它经常负责把源源不断产生的数据传递给下游系统。

例如:

text 复制代码
用户下单
   ↓
订单系统
   ↓
 Kafka
   ↓
 Flink
   ↓
实时计算

Kafka 自己主要不是负责复杂的数据计算,而是负责:

让大量实时数据可靠地从生产者流向消费者。

所以经常看到:

text 复制代码
业务系统 → Kafka → Flink

这也是实时数据处理非常经典的组合。


六、Hive:让大数据拥有"表"和 SQL

Hive 可以理解为一个大数据 SQL / 数据仓库体系

它让 HDFS、对象存储中的大量数据,可以按照数据库表的形式组织。

例如底层:

text 复制代码
/data/users/
    001.parquet
    002.parquet
    003.parquet

Hive 可以将这些数据描述为:

text 复制代码
user 表

id      BIGINT
name    STRING
age     INT

于是可以:

sql 复制代码
SELECT *
FROM user
WHERE age > 20;

Hive 表主要描述:

  • 表名
  • 字段
  • 字段类型
  • 分区
  • 文件格式
  • 数据存储位置

这些元数据通常由 Hive Metastore 管理。

因此:

Hive 表 = 给底层大数据文件定义表结构,让这些数据可以像数据库表一样被查询。

需要注意:

Hive 表的数据通常实际存储在 HDFS、S3、OSS 等底层存储中,并不是简单地"存进 Hive"。


七、HDFS:大数据存储

HDFS 是 Hadoop 的分布式文件系统

核心作用:

把非常大的数据分散存储在多台机器上。

传统 Hadoop 架构经常是:

text 复制代码
HDFS
 ↓
存储数据

MapReduce
 ↓
计算数据

Hive
 ↓
用表和 SQL 组织、查询数据

随着云计算发展,越来越多场景开始使用:

text 复制代码
AWS S3
阿里云 OSS
其他对象存储

所以现代架构中经常出现:

text 复制代码
对象存储
   +
Parquet
   +
Iceberg
   +
Spark / Flink

八、HBase:海量数据随机读写

HBase 是一个分布式 NoSQL 数据库

它特别适合:

根据 RowKey 从海量数据中快速查询某条或某几条数据,并支持随机读写。

例如:

text 复制代码
user_id = 10001
       ↓
     HBase
       ↓
用户画像
兴趣标签:数码
会员等级:VIP
最近商品:iPhone

典型特点:

  • 海量数据
  • RowKey 查询
  • 随机读写
  • 低延迟点查

所以可以记成:

HBase = 我已经知道"我要找谁",帮我快速找到它。


九、ClickHouse(CK):海量数据 OLAP 分析

ClickHouse 是一个列式 OLAP 分析型数据库

它非常擅长:

sql 复制代码
GROUP BY
SUM
COUNT
AVG
WHERE

例如有几十亿条订单,需要统计:

sql 复制代码
SELECT
    city,
    COUNT(*) AS order_count,
    SUM(amount)
FROM orders
GROUP BY city;

ClickHouse 可以快速扫描大量数据并进行聚合。

因此特别适合:

  • BI 报表
  • 数据大屏
  • 日志分析
  • 用户行为分析
  • 实时数仓
  • 大规模聚合查询

可以简单记成:

ClickHouse = 从海量数据中快速算出统计结果。


十、HBase 和 ClickHouse 的区别

两者都可以存储海量数据,但访问模式完全不同。

场景 HBase ClickHouse
根据 user_id 查用户 ★★★★★ ★★
RowKey 点查 ★★★★★ ★★
随机读写 ★★★★★ ★★
GROUP BY ★★★★★
SUM / COUNT ★★★★★
BI 报表 ★★★★★
大规模聚合分析 ★★ ★★★★★

最简单的判断方式:

text 复制代码
我已经知道"我要找谁"
        ↓
      HBase

我需要从大量数据中"算一个结果"
        ↓
   ClickHouse

所以 CK 并不能简单替代 HBase。


十一、这些技术哪些还主流?

可以粗略分成:

技术 当前定位 学习建议
Kafka 🟢 主流 重点
Spark 🟢 主流 重点
Flink 🟢 主流 重点
ClickHouse 🟢 主流 重点
Hive 🟡 体系仍非常重要 掌握
HDFS 🟡 仍大量存在,云上逐渐对象存储化 理解
HBase 🟡 特定场景仍重要 按需
MapReduce 🔴 新项目直接开发减少 理解原理即可

其中尤其需要注意:

MapReduce 使用减少 ≠ MapReduce 思想没有用了。

Map、Shuffle、Reduce 等思想依然存在于现代分布式计算系统中。


十二、现代大数据技术的演进

可以粗略理解为:

text 复制代码
早期 Hadoop 时代

HDFS
 +
MapReduce
 +
Hive

逐渐发展到:

text 复制代码
现代大数据架构

            Kafka
              ↓
       ┌──────┴──────┐
       ↓             ↓
     Spark          Flink
   批/通用计算       实时计算
       ↓             ↓
       └──────┬──────┘
              ↓
        HDFS / S3 / OSS
              ↓
       Hive / Iceberg
              ↓
   ClickHouse / HBase 等

现代数据平台还出现了越来越重要的:

Data Lake(数据湖)

Lakehouse(湖仓一体)

Iceberg 等开放表格式


十三、最终记忆方式

不要死记大数据技术名称,而应该问:它到底解决哪个问题?

问题 常见技术
数据存在哪里? HDFS / S3 / OSS
实时数据怎么传? Kafka
大规模离线数据怎么算? Spark
实时数据怎么算? Flink
大数据怎么组织成表? Hive / Iceberg
海量数据怎么做 OLAP 分析? ClickHouse
海量数据怎么根据 Key 快速查询? HBase
传统分布式批处理是什么? MapReduce

最终可以压缩成一句:

Kafka 负责传,Spark/Flink 负责算,HDFS/对象存储负责存,Hive/Iceberg 负责组织,ClickHouse 负责 OLAP 分析,HBase 负责海量数据的 Key 点查和随机读写。

对于后端开发而言,现阶段重点理解 Kafka、Spark、Flink、Hive、ClickHouse 的定位即可;MapReduce 重点理解 Map、Shuffle、Reduce 等基本思想,不必把传统 MapReduce 编程作为学习重点。

相关推荐
hangzhouhuanyu1 小时前
从培训到创业:AI工具在数字经济中的落地路径与避坑指南
大数据·人工智能
Lalolander1 小时前
WorkBuddy App 怎么发起任务?输入栏与发送全流程
大数据·人工智能·金蝶erp·workbuddy
2501_912784082 小时前
跨境建站避坑:为什么通用电商架构不适配反向代购业务
大数据·人工智能·架构·taoify
数智启示录2 小时前
实时数据湖 flink CDC + Kafka +Doris 【企业级实战】Checkpoint、Offset、事务与幂等如何闭环 06
大数据·flink·kafka
智慧大脑搬运工2 小时前
环保装备制造业高质量发展政策框架解析:揭榜挂帅机制与专精特新培育路径
大数据
老林说收银2 小时前
溯引 GEO 优化系统落地实战指南
大数据·人工智能
Safeploy安策数据2 小时前
服务器防勒索实战指南:从攻击链路到防御体系构建
大数据
huashengzsj2 小时前
2026年WordPress建站公司推荐:哪些服务商更适合长期运营网站?
大数据·人工智能·云计算
BD_Marathon2 小时前
Hadoop组成
大数据·hadoop·分布式