← 返回博客列表

一、引言:大数据与 AI 时代

随着互联网、物联网、5G 的迅猛发展,数据已成为继土地、劳动力、资本、技术之后的第五大生产要素。人类社会每天产生的数据量已从 GB、TB 时代迈入 PB、EB 时代。如何高效地存储、处理、分析这些海量数据,并从中提炼出价值,催生了大数据技术体系。而人工智能(尤其是以深度学习为代表的新一代 AI)的复兴,恰恰依赖于大数据提供的"燃料"——海量训练样本。大数据与 AI 的融合,构成了当代系统架构师必须掌握的核心技术栈。

大数据与 AI 的关系(软考高频辨析)
· 大数据是"石油":提供海量、多源、高速的数据原材料
· AI 是"炼油厂":通过算法从数据中提炼模型与决策能力
· 二者相互成就:大数据让 AI 模型更准确,AI 让大数据价值更显著
· 架构师视角:需要同时理解数据管道(Data Pipeline)与模型管道(Model Pipeline),并将二者打通

1.1 为什么架构师必须理解大数据与 AI

在软考系统架构设计师的考察体系中,大数据与 AI 已经从"加分项"变为"必考点"。一个合格的架构师需要回答以下问题:

本文将围绕数据采集 → 存储 → 计算 → 分析 → 服务 → 模型训练 → 模型推理 → 模型治理这一完整链路,系统梳理大数据与 AI 架构的核心知识,并辅以大量 SVG 架构图、对比表和软考真题,帮助读者建立体系化的认知。

二、大数据基础

2.1 大数据的 5V 特征

大数据的定义性特征通常被概括为5V 模型,这是软考中最基础也最高频的考点之一,必须熟记每个 V 的中文含义与典型表现。

大数据 5V 特征 Volume 大量 Velocity 高速 Value 价值 Veracity 真实性 Variety 多样
图 1:大数据 5V 特征示意
记忆口诀:
· 体量大(Volume)、速度快(Velocity)、种类多(Variety)、真实性(Veracity)、价值高(Value)
· "体速种真价" —— 体量大、速度快、种类多、真实性、价值密度低但总量价值高

2.2 大数据处理流水线

无论采用何种具体技术,一个完整的大数据处理流水线通常包含五个核心环节:采集 → 存储 → 处理 → 分析 → 可视化。每一环节都有对应的代表性技术栈。

① 采集 Flume/Sqoop/Kafka ② 存储 HDFS/HBase/S3 ③ 处理 MapReduce/Spark/Flink ④ 分析 Hive/Impala/MLlib ⑤ 可视化 BI/Superset/Grafana 日志/埋点/DB/物联网 分布式文件/对象存储 批处理/流处理 SQL查询/机器学习 报表/大屏/告警 大数据处理流水线
图 2:大数据处理流水线五环节

需要注意的是,这五个环节并非严格线性,实际系统中常常存在回环:例如分析结果可能触发新的采集任务,可视化发现的异常可能反过来驱动模型重训练。架构师的任务是把这些环节解耦但又串联起来,形成可扩展的数据中台。

三、大数据架构模式

大数据架构模式解决的核心问题是:如何同时满足海量数据的批处理(高吞吐、低成本)与实时处理(低延迟)需求。围绕这一问题,业界先后演化出 Lambda、Kappa 与湖仓一体三种主流架构。

3.1 Lambda 架构

Lambda 架构由 Nathan Marz 提出,其核心思想是"批处理 + 流处理"双链路并行,再通过服务层合并结果。它将系统分为三层:

Lambda 架构 数据源 Kafka/日志 批处理层 Batch Hadoop / Spark 全量数据 · 精确 · 高延迟 速度层 Speed Storm / Flink 增量数据 · 近似 · 低延迟 服务层 Serving 批视图 + 实时视图 HBase / Druid 低延迟查询 查询
图 3:Lambda 架构三层模型
✓ 优点
  • 兼顾低延迟与结果精确,容错性强
  • 批处理层可重算历史数据,结果可重现
  • 架构成熟,工业界广泛落地
✗ 缺点
  • 需维护两套代码(批+流),开发与运维成本高
  • 两套逻辑结果可能不一致,调试困难
  • 资源占用大,集群规模翻倍

3.2 Kappa 架构

Kappa 架构由 Jay Kreps(Kafka 作者)提出,主张用单一的流处理链路取代批+流双链路。其核心思想是:所有数据都视为流,批处理只是"有界流"的特例。当需要重算历史时,通过Kafka 消息回放(replay)重新消费历史数据即可,无需维护两套代码。

Kappa 架构(单一流处理) 数据源 实时+历史 消息队列 Kafka 日志即真相 可回放 流处理引擎 Flink 单一代码 事件级处理 服务层 查询 历史回放(重算)
图 4:Kappa 架构——单一流处理 + 消息回放
✓ 优点
  • 只维护一套代码,开发运维成本低
  • 结果一致性更好
  • 架构简洁,易于演进
✗ 缺点
  • 依赖消息队列的回放能力与长保留期
  • 大范围历史重算开销大
  • 对流处理引擎要求高(状态管理、Exactly-once)

3.3 湖仓一体(Lakehouse)

湖仓一体由 Databricks 提出,旨在融合数据湖的灵活性与数据仓库的管理能力。传统数据湖基于 HDFS/S3 存储原始数据,成本低、格式灵活,但缺乏事务、Schema 强约束、数据质量保障;数据仓库则相反,管理规范但成本高、扩展性差。湖仓一体通过在对象存储之上引入开放表格式(Open Table Format),实现 ACID 事务、Schema 演进、Time Travel 等能力。

三大主流开放表格式:

湖仓一体(Lakehouse)架构 数据接入:结构化 / 半结构化 / 非结构化 / 流式 / 批量 对象存储层(S3 / OSS / HDFS) 开放表格式:Delta Lake / Iceberg / Hudi ACID 事务 · Schema 演进 · Time Travel · Upsert · 增量消费 低成本 + 强管理 = 数据湖 + 数据仓库 Spark 批处理/ML Flink 流处理 Presto/Trino 交互查询 BI / ML 报表/模型
图 5:湖仓一体架构——存储计算分离 + 开放表格式

3.4 三种架构对比

维度 Lambda 架构 Kappa 架构 湖仓一体(Lakehouse)
处理链路 批 + 流双链路 单一流处理链路 存储计算分离,多引擎统一访问
代码维护 两套代码 一套代码 一套表格式 + 多引擎
历史重算 批处理层重算 Kafka 回放 Time Travel / 快照
事务支持 弱 依赖引擎 ACID(开放表格式提供)
实时性 高(速度层) 很高 中高(支持流式写入)
成本 高(双链路) 中 低(对象存储)
典型技术 Hadoop + Storm + HBase Kafka + Flink S3 + Iceberg/Delta/Hudi + Spark
适用场景 既有历史又有实时 以实时为主、回放可行 统一数据平台、ML/BI 一体

四、Hadoop 生态系统

Hadoop 是大数据时代的奠基性开源框架,由 Doug Cutting 以 Google 三大论文(GFS、MapReduce、Bigtable)为蓝本实现。它解决了海量数据的分布式存储与分布式计算问题,是软考大数据部分的高频考点。

4.1 HDFS(Hadoop 分布式文件系统)

HDFS 采用主从架构,将大文件切分为固定大小的块(Block,默认 128MB)分布式存储在多个节点上,并通过多副本(默认 3 副本)保障容错。

常见误区(软考易错点)
Secondary NameNode ≠ NameNode 备份!它的作用是定期合并元数据镜像,降低 NameNode 启动时间。真正的 HA 备份通常通过HA NameNode(Active/Standby)+ JournalNode 实现。
HDFS 架构 Client NameNode 元数据 / 命名空间 Block 映射 Secondary NameNode 合并镜像(非备份) DataNode 1 Block A1 / B1 心跳 + 块报告 DataNode 2 Block A2 / B2 副本存储 DataNode 3 Block A3 / B3 默认 3 副本
图 6:HDFS 主从架构(NameNode / DataNode / Secondary NameNode)
关键概念速记
· Block 大小:默认 128MB(Hadoop 2.x+),旧版 64MB
· 副本系数:默认 3,存放策略为"本地一份、同机架一份、跨机架一份"
· 写入流程:Client → NameNode(申请)→ DataNode(流水线复制)→ ACK
· 读取流程:Client → NameNode(获取块位置)→ 就近 DataNode 拉取

4.2 MapReduce

MapReduce 是一种分而治之的分布式计算模型,将任务分为 Map(映射)和 Reduce(归约)两个阶段,中间通过 Shuffle(洗牌)将相同 key 的数据分发到同一 Reduce 任务。

MapReduce 执行流程(以 WordCount 为例) Input hello world hello hadoop Map (hello,1) (world,1) (hello,1) (hadoop,1) 分片并行 Shuffle 分区 Partition 排序 Sort 分组 Group hello:[1,1] world:[1] hadoop:[1] Reduce (hello,2) (world,1) (hadoop,1) 聚合归约 Output HDFS 文件
图 7:MapReduce 流程——Map → Shuffle → Reduce
WordCount 走读要点
1. 输入分片 → 每个 Map 处理一行文本,按空格切分,每个单词输出 (word, 1)
2. Shuffle 按 word 分区排序,相同 word 的 1 聚合为 list:[1,1,...]
3. Reduce 对 list 求和,输出 (word, 总次数)
4. Shuffle 是性能瓶颈:大量磁盘 I/O 与网络传输,这是 Spark 取代 MapReduce 的关键原因

4.3 YARN(资源调度)

YARN(Yet Another Resource Negotiator)是 Hadoop 2.x 引入的资源管理与调度框架,将资源管理与作业调度解耦,使 Hadoop 不再只服务于 MapReduce,而是可以同时运行 Spark、Flink、Tez 等多种计算框架。

YARN 架构 Client ResourceManager Scheduler 资源调度 AppManager 作业管理 NodeManager 1 Container + ApplicationMaster NodeManager 2 Container Task 运行 NodeManager 3 Container Task 运行 心跳 + 资源汇报
图 8:YARN 资源调度架构
YARN 调度器三种类型
1. FIFO Scheduler:先进先出,单队列,简单但公平性差
2. Capacity Scheduler(默认):多队列,按容量分配,保证小作业资源
3. Fair Scheduler:公平共享,所有作业平均分配资源,适合多用户

4.4 Hadoop 生态全景

Hadoop 已从最初的 HDFS + MapReduce 发展为庞大生态,覆盖数据接入、存储、计算、查询、协调、调度等各个环节。

Hadoop 生态系统全景 数据接入 Flume Sqoop Kafka Kettle 数据存储 HDFS HBase Oozie HCatalog 数据处理 MapReduce Spark Flink Tez 查询分析 Hive Pig Impala Presto 协调调度 ZooKeeper Oozie YARN
图 9:Hadoop 生态系统分层全景
组件 类别 核心作用
HDFS存储分布式文件系统,海量数据底座
HBase存储列式 NoSQL 数据库,基于 HDFS,支持随机读写
MapReduce计算分布式批处理框架
YARN调度集群资源管理与作业调度
Hive查询SQL on Hadoop,将 SQL 翻译为 MapReduce/Tez 作业
Pig查询数据流脚本语言 Pig Latin,适合 ETL
Sqoop接入关系数据库 ↔ HDFS/Hive/HBase 数据同步
Flume接入日志流式采集,写入 HDFS/Kafka
Kafka消息分布式消息队列,削峰填谷、流处理入口
ZooKeeper协调分布式协调服务:配置/命名/锁/选举
Oozie调度工作流调度,编排 MapReduce/Hive 作业
Impala/Presto查询MPP 引擎,交互式低延迟 SQL 查询

五、Spark 内存计算

Apache Spark 是继 MapReduce 之后的新一代分布式计算引擎,核心优势是基于内存的迭代计算,相比 MapReduce 的磁盘密集型 Shuffle,Spark 可将中间结果驻留内存,性能提升 10~100 倍,特别适合机器学习迭代算法与交互式查询。

5.1 Spark 架构

Spark 运行架构 Cluster Manager YARN / Standalone / K8s Driver SparkContext / DAG Worker 1 Executor(Cache+Task) Task Task Worker 2 Executor(Cache+Task) Task Task Worker 3 Executor(Cache+Task) Task Task
图 10:Spark 架构——Driver / Cluster Manager / Executor

5.2 Spark 核心概念

RDD vs DataFrame vs Dataset
· RDD:底层 API,灵活但无优化
· DataFrame:带 Schema 的 RDD,类似关系表,有 Catalyst 优化器与 Tungsten 执行引擎
· Dataset:DataFrame + 强类型(Scala/Java),兼顾类型安全与性能

5.3 Spark 生态栈

5.4 Spark vs MapReduce

维度 MapReduce Spark
计算模式批处理批 + 微批流 + 机器学习 + 图
中间结果落磁盘驻留内存(可落盘)
性能慢(磁盘 I/O)快 10~100 倍
编程模型Map/Reduce 两阶段RDD/DAG 多阶段
迭代计算不友好(每次重读磁盘)友好(内存缓存)
容错Task 重试血缘 Lineage 重建
延迟分钟~小时秒~分钟
资源低高(内存大)

Apache Flink 是真正的流处理引擎(Native Streaming),与 Spark Streaming 的微批(Micro-Batch)模式形成鲜明对比。Flink 把每条事件当作流的一个元素逐条处理,延迟可低至毫秒级,是当前低延迟流处理的事实标准。

6.1 真流 vs 微批

6.2 Flink 架构

Flink 架构 JobManager JobMaster 调度/CK ResourceMgr 资源 Dispatcher 提交 TaskManager 1 Slot Slot State + Task TaskManager 2 Slot Slot State + Task TaskManager 3 Slot Slot State + Task
图 11:Flink 架构——JobManager + TaskManager + Slot

6.3 关键特性

Exactly-Once 易错点
Flink 端到端 Exactly-Once 需要三件套配合:① Source 支持回放(如 Kafka offset)② Flink Checkpoint ③ Sink 支持两阶段提交(如 Kafka 事务写、JDBC 事务)。缺一则只能 At-Least-Once。

6.4 Spark Streaming vs Flink

维度 Spark Streaming Flink
处理模型微批(Micro-Batch)真流(Native Streaming)
延迟秒级毫秒级
时间语义处理时间为主事件时间 + Watermark
状态管理较弱强大(内置 State)
语义保障At-Least-OnceExactly-Once(端到端)
批处理原生支持有界流(DataSet 已弃用,统一 DataStream)
生态SQL/MLlib/GraphX 完善SQL/CEP/Table 完善
适用场景批为主、流为辅低延迟流处理为主

七、数据仓库与数据湖

7.1 数据仓库分层架构

数据仓库通常采用分层建模,将原始数据逐步加工为可分析指标,典型四层架构:

数仓分层价值
· 复用:DWD/DWS 一次加工多处使用,避免烟囱式开发
· 解耦:源系统变更不直接影响应用层
· 血缘清晰:便于数据治理与影响分析

7.2 星型模型 vs 雪花模型

数仓维度建模有两种典型模式:

星型模型 雪花模型 事实表 Sales Fact 时间维度 商品维度 门店维度 促销维度 事实表 Sales Fact 商品维度 类别 品牌 时间维度 门店维度 地区 城市
图 12:星型模型 vs 雪花模型对比
维度星型模型雪花模型
维度表规范化否(反范式)是(范式拆分)
JOIN 数量少多
查询性能好较差
存储冗余多节省
建模复杂度简单复杂
适用场景OLAP 数仓首选关系强、需精细管理

7.3 缓慢变化维(SCD)

维度数据会随时间变化(如用户迁居、商品改名),如何记录历史变化?这就是缓慢变化维(Slowly Changing Dimensions)问题,常见三类处理方式:

软考记忆要点
· Type 1 = 覆盖(无历史)
· Type 2 = 拉链表(全历史,最常用)
· Type 3 = 加列(仅上一版)
拉链表关键字段:start_date、end_date、is_current

7.4 数据湖

数据湖(Data Lake)是一个集中式存储库,可以原生格式存储任意类型、任意规模的数据。与数据仓库的"先建模后入库"不同,数据湖主张"先入库后建模"(Schema-on-Read),灵活但易沦为"数据沼泽"。前述湖仓一体正是为解决数据湖管理薄弱而生的演进。

数据湖架构 结构化数据 RDBMS / 日志 半结构化数据 JSON / XML / CSV 非结构化数据 图片 / 视频 / 文本 数据湖 HDFS / S3 / OSS Schema-on-Read 原始格式存储 低成本 BI 分析 Hive / Presto 机器学习 Spark MLlib 数据科学 Jupyter
图 13:数据湖架构——多源原始数据统一存储
维度数据仓库数据湖
数据类型结构化为主结构化/半/非结构化
SchemaSchema-on-Write(先建表)Schema-on-Read(读取时解析)
处理者业务分析师数据科学家/工程师
成本高低
成熟度成熟易成数据沼泽

八、NoSQL 数据库在大数据中的应用

8.1 NoSQL 四大类型回顾

类型代表数据模型典型场景
键值(KV)Redis、MemcachedKey-Value缓存、会话、计数器
文档(Document)MongoDB、CouchDBJSON 文档内容管理、用户画像
列族(Column-Family)HBase、Cassandra稀疏列族大数据宽表、时序
图(Graph)Neo4j、JanusGraph节点+边社交、推荐、风控

8.2 列族数据库与 HBase

列族数据库是大数据场景的主力,能够支撑数十亿行 × 百万列的稀疏宽表。HBase 基于 HDFS,提供强一致性随机读写,是 Hadoop 生态的核心 NoSQL。

HBase 核心组件:

HBase 架构 HMaster RegionServer 1 Region A MemStore → HFile Region B MemStore → HFile HLog(WAL) 预写日志 写入: WAL→MemStore→Flush→HFile RegionServer 2 Region C MemStore → HFile HLog(WAL) 预写日志 Store = 列族 Region = RowKey 范围 自动分裂 ZooKeeper 主备选举 Region 寻址 心跳监控 HDFS HFile 存储 多副本容错 底层存储底座
图 14:HBase 架构——RegionServer / Region / HLog / MemStore / HFile
HBase 写入流程
1. Client 通过 ZooKeeper 定位 RegionServer
2. 写 HLog(WAL)落盘保障持久性
3. 写 MemStore(内存)
4. 返回成功
5. MemStore 写满后 flush 为 HFile
6. 多个 HFile 定期 Compaction 合并
读取流程:MemStore + BlockCache + HFile 三处合并扫描

8.3 各类 NoSQL 在大数据中的适用场景

九、消息队列与流处理

9.1 Kafka 架构

Apache Kafka 是分布式发布-订阅消息系统,以高吞吐、可持久化、可水平扩展著称,是大数据管道的"主动脉"。

Kafka 架构 Producer 1 Producer 2 Kafka 集群(Broker) Topic: orders Partition 0 Leader: B1 Partition 1 Leader: B2 Partition 2 Leader: B3 副本机制(Leader + Follower) ISR(同步副本集合) 顺序写磁盘 + 零拷贝 = 高吞吐 消息持久化 + 按 Offset 回放 Consumer Group Consumer A Consumer B Consumer C Partition ↔ Consumer
图 15:Kafka 架构——Producer / Broker / Topic / Partition / Consumer Group

9.2 Kafka vs RabbitMQ

维度KafkaRabbitMQ
定位分布式日志/流平台传统消息中间件
吞吐极高(百万/秒)中(万级/秒)
延迟毫秒~秒微秒~毫秒
持久化磁盘顺序写,可长期保留可持久化,但消费后删除
消费模型拉取(Pull),按 Offset 回放推送(Push),消费即删除
顺序性Partition 内有序队列内有序
典型场景日志、流处理、事件溯源业务解耦、异步任务、RPC

9.3 流处理模式

Kafka 高吞吐秘诀
· 顺序写磁盘:追加写入,磁盘顺序写接近内存速度
· 零拷贝(Zero Copy):sendfile 系统调用,数据不经用户态
· 分区并行:Topic 多 Partition,水平扩展
· 批量压缩:Producer 端批量 + 压缩(snappy/lz4)

十、机器学习架构

10.1 机器学习流程

一个完整的机器学习项目并非只有"训练模型"一步,而是覆盖从数据到部署到监控的完整闭环,通常包含六个阶段:

机器学习生命周期 ①数据采集 业务/日志/API ②特征工程 清洗/提取/变换 ③模型训练 算法/调参 ④模型评估 AUC/F1/准确率 ⑤模型部署 REST/gRPC ⑥模型监控 漂移/告警 反馈闭环:监控触发再训练(持续学习)
图 16:机器学习生命周期六阶段闭环

10.2 特征工程与特征存储

特征工程是机器学习中最耗工时的环节,业界常说"数据和特征决定了机器学习的上限,而算法只是逼近这个上限"。

训练-在线偏差(Training-Serving Skew)
若训练用离线特征计算逻辑、在线用另一套代码生成特征,会导致模型上线效果骤降。Feature Store 通过单一特征定义 + 双写统一两套口径,是解决此问题的关键架构。

10.3 模型训练与分布式训练

当模型规模(如大模型 LLM)或数据量超出单机内存/算力时,需要分布式训练。两种基本并行策略:

参数服务器(Parameter Server)架构:经典的分布式训练架构,由 Server 节点(存参数)与 Worker 节点(算梯度)组成,Worker pull 参数、push 梯度,Server 异步或同步更新。

参数服务器分布式训练架构 Parameter Server 存参数 / 聚合梯度 Parameter Server 分片存储 Worker 1 数据分片 1 前向+反向 Worker 2 数据分片 2 前向+反向 Worker 3 数据分片 3 前向+反向 Worker 4 数据分片 4 前向+反向 ↑ push 梯度 ↓ pull 参数
图 17:参数服务器架构——Server 存参数,Worker 算梯度

10.4 模型推理服务

模型训练完成后,需要部署为推理服务(Model Serving)对外提供预测能力。两种推理模式:

主流模型服务框架:

模型推理服务架构 客户端 API 网关 鉴权/限流/路由 推理服务 Triton/TF Serving 模型仓库(Model Registry) 版本管理 / A/B / 灰度 特征存储(Feature Store) 监控 延迟 QPS 漂移 告警
图 18:模型推理服务架构——网关 + 推理 + 模型仓库 + 特征存储

十一、MLOps 与模型生命周期管理

MLOps(Machine Learning Operations)是将 DevOps 思想应用于机器学习的工程实践,目标是让模型从实验到生产的全流程自动化、可监控、可复现。MLOps 解决的核心痛点是:模型实验环境与生产环境脱节、模型上线慢、上线后效果衰退无人感知。

11.1 MLOps 核心能力

MLOps 闭环流水线 数据版本 DVC/Pachyderm 特征工程 Feature Store 模型训练 自动调参 模型评估 指标校验 模型注册 MLflow Registry 模型部署 灰度/蓝绿 模型监控 漂移检测 反馈触发 持续训练 CT 触发再训练
图 19:MLOps 闭环流水线——从数据到部署再到监控反馈

11.2 数据漂移与概念漂移

模型上线后效果会随时间衰退,根因主要有两类"漂移":

漂移应对策略
· 轻微漂移 → 监控告警,暂不重训
· 显著漂移 → 触发自动重训练(CT)
· 概念漂移 → 需引入新特征或更换模型,单纯重训无效

十二、AI 推理优化

模型在训练阶段追求精度,在推理阶段则追求低延迟、高吞吐、低资源消耗。AI 推理优化是让模型在生产环境中"跑得快又省钱"的关键技术,主要手段有三类:量化、剪枝、知识蒸馏。

12.1 模型量化(Quantization)

量化是将模型权重与激活值从高精度浮点(FP32)转换为低精度整数(INT8/INT4)的过程,可大幅降低内存占用、提升推理速度,是工业部署最常用的优化手段。

12.2 模型剪枝(Pruning)

剪枝是删除模型中冗余、不重要的权重或神经元,减小模型体积。

12.3 知识蒸馏(Knowledge Distillation)

知识蒸馏用一个大而强的教师模型(Teacher)指导训练一个小而快的学生模型(Student),让学生学到教师的"暗知识"(soft label 的概率分布),在保持接近教师精度的同时大幅降低推理成本。

AI 推理优化三大技术对比 ① 量化 Quantization FP32 → INT8 FP32(4B) INT8(1B) PTQ(训练后) QAT(量化感知) 内存↓4倍 速度↑2-3倍 精度损失:轻微 ② 剪枝 Pruning 删除冗余权重/通道 结构化 vs 非结构化 硬件加速:结构化友好 ③ 知识蒸馏 Distillation 教师模型(大/准) 软标签 学生模型(小/快) 学暗知识 精度接近教师
图 20:量化 / 剪枝 / 知识蒸馏三大推理优化技术
技术原理加速效果精度损失典型工具
量化FP32→INT8/INT42-4 倍轻微TensorRT/TFLite
剪枝删除冗余权重1.5-3 倍可控TorchPruner
蒸馏大模型教小模型取决于学生较小HuggingFace/自研
算子融合合并相邻算子1.2-2 倍无损TensorRT/XLA
实战组合拳
工业界通常组合使用:先蒸馏得到小模型 → 再量化为 INT8 → 再结构化剪枝 → 最后算子融合。最终在 GPU/CPU 上可获得数倍加速且精度损失可控。

十三、大数据与 AI 实战案例:推荐系统架构

推荐系统是大数据与 AI 融合的典型场景,几乎串联了本文所述的所有技术:数据采集、消息队列、流处理、特征工程、模型训练、模型推理、A/B 测试、监控反馈。下面以电商推荐为例,剖析完整架构。

13.1 整体架构

现代推荐系统普遍采用"召回 → 排序 → 重排"三段式架构,兼顾候选覆盖度与排序精度,同时满足实时性要求。

推荐系统完整架构 数据采集层:用户行为日志 / 商品元数据 / 上下文(Kafka 接入) 特征工程层:用户特征 / 商品特征 / 上下文特征 → Feature Store(离线+在线) ① 召回 Recall 多路召回:协同过滤 向量化召回/图召回 百万→千级 ② 排序 Ranking 精排模型:DeepFM Wide&Deep / DIN 千→百级打分 ③ 重排 Re-ranking 多样性/新颖性 业务规则/打散 百→最终展示 实时服务层 API 网关 + 模型推理(Triton)+ 在线特征(Redis) 毫秒级响应 A/B 测试 + 监控反馈 流量分桶 / 指标对比 监控 CTR/GMV → 反馈再训练
图 21:推荐系统完整架构——召回/排序/重排 + 实时服务 + A/B 测试

13.2 关键环节详解

架构设计要点
1. 离线-在线一致:特征计算逻辑必须训练与推理同源,否则效果骤降
2. 召回求宽、排序求准:召回多路并行保证覆盖,排序精打细算保证质量
3. 实时性分级:用户实时行为(最近点击)秒级更新,长期偏好天级更新
4. 灰度发布:新模型先小流量灰度,验证无损再放量

十四、软考考点总结与真题

14.1 核心考点速查表

知识域核心考点考频
大数据基础5V 特征、处理流水线★★★★★
架构模式Lambda/Kappa/湖仓一体对比★★★★
HadoopHDFS 三角色、MapReduce 流程、YARN 调度★★★★★
SparkRDD/DAG/Stage、与 MR 对比★★★★
Flink真流 vs 微批、Exactly-Once、Watermark★★★
数仓ODS/DWD/DWS/ADS、星型/雪花、SCD★★★★
NoSQL四大类型、HBase 架构★★★
Kafka架构组件、与 RabbitMQ 对比★★★
ML/MLOpsML 流程、特征存储、模型监控★★★
推理优化量化/剪枝/蒸馏区分★★

14.2 软考真题精选

真题一(大数据特征)

大数据的基本特征通常用 5V 来描述,以下不属于 5V 的是( )。

A. Volume    B. Velocity    C. Visualization    D. Value

答案:C
解析:大数据 5V 为 Volume(大量)、Velocity(高速)、Variety(多样)、Veracity(真实性)、Value(价值)。Visualization(可视化)是大数据的应用环节,不属于 5V 特征。注意 Veracity 与 Visualization 的区分。

真题二(Hadoop 组件职责)

在 HDFS 中,关于 Secondary NameNode 的描述,正确的是( )。

A. 它是 NameNode 的热备份,故障时自动接管
B. 它负责合并 fsImage 与 editLog,减轻 NameNode 重启压力
C. 它存储实际数据块,处理客户端读写请求
D. 它负责集群资源调度与作业分配

答案:B
解析:Secondary NameNode 的核心职责是定期合并元数据镜像 fsImage 与编辑日志 editLog,降低 NameNode 重启时间。它并非 NameNode 的热备(A 错),不存储数据块(C 错,那是 DataNode),不负责资源调度(D 错,那是 YARN 的 ResourceManager)。真正的 HA 备份通过 Active/Standby NameNode + JournalNode 实现。

真题三(架构模式辨析)

关于 Lambda 架构与 Kappa 架构,下列说法错误的是( )。

A. Lambda 架构同时维护批处理层与速度层,需两套代码
B. Kappa 架构通过消息队列回放历史数据实现重算,仅维护一套代码
C. Lambda 架构的批处理层结果精确,速度层结果近似
D. Kappa 架构完全不需要任何批处理,所有计算都是事件级实时处理

答案:D
解析:Kappa 架构主张用统一的流处理取代"批+流双链路",但并非"完全不需要批处理"。在 Kappa 中,批处理被视为"有界流"的特例,历史重算通过 Kafka 回放批量消费历史数据完成,本质仍是流处理模型对批处理的统一。A、B、C 描述均正确。Kappa 的核心是"一套代码 + 消息回放",而非"没有批处理"。

14.3 记忆口诀

大数据与 AI 架构记忆口诀
· 5V:"体速种真价"——大量、高速、多样、真实、价值
· 流水线:"采存处分可"——采集、存储、处理、分析、可视化
· Lambda 三层:"批速服"——Batch/Speed/Serving
· HDFS 三角:"名数副"——NameNode/DataNode/SecondaryNameNode(副非备份!)
· MapReduce:"Map 洗 Reduce"——映射、Shuffle、归约
· YARN:"RM+NM+AM"——ResourceManager/NodeManager/ApplicationMaster
· Spark 核心:"RDD 造 DAG,宽依赖切 Stage,分区定 Task"
· Flink 特性:"真流、事件时、水位线、精确一次"
· 数仓分层:"ODW A"——ODS/DWD/DWS/ADS
· SCD:"一覆盖、二拉链、三加列"
· HBase 写入:"WAL→MemStore→Flush→HFile"
· 推理优化:"量剪蒸"——量化、剪枝、蒸馏
· 推荐三段:"召排重"——召回、排序、重排

14.4 总结

大数据与 AI 架构是系统架构设计师考试中覆盖面最广、技术更新最快的领域之一。从底层的 Hadoop 生态,到内存计算的 Spark、流处理的 Flink,再到数据仓库与数据湖的融合,直至机器学习与 MLOps 的工程化落地,构成了一条完整的"数据→智能"价值链。

备考建议
1. 建立体系:不要孤立记忆每个组件,要理解其在数据流水线中的位置
2. 抓对比:Lambda vs Kappa、Spark vs Flink、星型 vs 雪花、数据仓库 vs 数据湖、量化 vs 剪枝 vs 蒸馏——对比是软考命题最爱
3. 记组件职责:HDFS/YARN/HBase/Kafka 的核心组件角色是高频选择/判断题
4. 理解架构演进动机:每项技术为何出现、解决了什么问题、代价是什么,比死记更重要
5. 结合案例:推荐系统案例串联了全部知识点,是论述题的好素材

架构的本质是权衡。没有最好的架构,只有最适合业务场景、团队规模、成本约束的架构。大数据与 AI 架构的演进史,正是工程师们在"延迟 vs 吞吐、成本 vs 性能、灵活 vs 规范、实时 vs 精确"之间不断权衡的历史。掌握这些权衡的思想,远比记忆具体组件的配置参数更有价值——这也是系统架构设计师考试的真正旨归。