软考专题 · 大数据架构(选择题 18 + 案例答题套路 + Lambda/Kappa 模拟题 + 论文提纲)
大数据是近年系统架构设计师新增的中频考点——综合知识每年 1-3 道选择题(Hadoop 生态 / Lambda 架构 / 数据仓库 vs 数据湖 / NoSQL 选型),案例分析中频出”大数据 / 高并发 Web 架构”25 分大题(Lambda vs Kappa 选型、实时数仓、用户行为分析平台),论文也出”论大数据处理架构及其应用 / 论 NoSQL 数据库的应用 / 论数据中台建设”。这篇把必背理论、高频选择题(带 ✅ 答案 + 解析,自主命题避版权)、案例答题套路、1 道完整模拟案例题、论文万能提纲打包在一起。内容来自开源仓库
PeterGuy326/senior-software-architect-review。回到 软考导览页 看完整专题清单。
一、必背:核心理论
教材参考:《系统架构设计师教程(第 2 版)》第 18 章「大数据架构设计理论与实践」。
大数据 5V 特征(必考)
| V | 含义 | 量级 / 表现 |
|---|---|---|
| Volume(体量大) | 数据规模巨大 | TB ~ EB 级 |
| Velocity(速度快) | 产生与处理速度快 | 流式、实时秒级、低延迟 |
| Variety(多样性) | 结构化 + 半结构化 + 非结构化混合 | JSON / 日志 / 图片 / 视频 |
| Veracity(真实性) | 数据质量参差、需治理 | 噪声 / 缺失 / 不一致 |
| Value(价值) | 总量大但价值密度低 | 需挖掘提炼 |
口诀:”量、速、变、真、值“。早期只有 4V(无 Veracity),现教材统一按 5V 记。
Hadoop 生态速查表(高频)
| 组件 | 角色 | 关键点 |
|---|---|---|
| HDFS | 分布式文件系统 | NameNode(存元数据)+ DataNode(存数据块),默认副本 3;HA 用 Active/Standby NN + JournalNode + ZKFC |
| MapReduce | 分布式批计算编程模型 | Map → Shuffle(分区/排序/合并)→ Reduce,离线 ETL(已弱化) |
| YARN | 资源调度 | ResourceManager + NodeManager + ApplicationMaster + Container |
| Hive | SQL on Hadoop(数据仓库) | HQL → MR / Spark / Tez,元数据存 MySQL |
| HBase | 列族式 NoSQL | 基于 HDFS + ZooKeeper,适合海量稀疏数据 + 随机读写,RowKey 是性能命脉 |
| ZooKeeper | 分布式协调 | 选主、配置、命名、分布式锁 |
| Kafka | 消息 / 流缓冲 | 采集与计算之间的解耦点、削峰、回放 |
| Spark | 内存计算引擎 | DAG + RDD,比 MapReduce 快(内存 + 宽窄依赖优化);含 Spark SQL / Streaming(微批)/ MLlib / GraphX |
| Flink | 真流式计算引擎 | 事件时间 + 水印(Watermark),低延迟(ms ~ 亚秒),强状态(Checkpoint),Exactly-Once,流批一体 |
| Sqoop | 关系库 ↔ HDFS 批量同步 | 全量 / 增量导入导出 |
| Flume | 日志采集 | Source → Channel → Sink |
“HDFS + MapReduce + YARN“是 Hadoop 三件套;”Hive 离线 · HBase 随机 · Spark 内存 · Flink 真流“是引擎记忆口诀。
Lambda 架构 vs Kappa 架构(必考选型题)
| 维度 | Lambda 架构 | Kappa 架构 | 批流一体(Flink) |
|---|---|---|---|
| 层次 | 批处理层 + 速度层 + 服务层(三层) | 仅流处理层(一层) | 一套引擎统一流批 |
| 思想 | 同一份数据走两条链路,服务层合并 | 用流重放历史代替批处理 | Flink 视批为流的特例 |
| 代表 | Hadoop/Spark(批)+ Flink/Storm(流) | Kafka 长保留 + Flink 统一 | Flink Batch Mode / Iceberg + Flink |
| 优点 | 兼顾准确与实时,回填快(批层重跑) | 架构简化,单套代码,运维一套集群 | 一套代码、一套语义 |
| 缺点 | 两套代码(批 + 流逻辑漂移)、运维 2 套集群、结果合并复杂 | 回溯成本高(PB 数据从头重放慢)、对状态/存储要求高 | Flink 批量场景仍弱于 Spark |
Lambda 三层职责:批处理层 = 全量精确计算、T+1,作为「真相之源(Single Source of Truth)」;速度层 = 增量实时计算,牺牲精度换低延迟,补全批层时间窗口;服务层 = 合并批 + 流结果对外查询。画 Lambda 忘了服务层 = 严重失分。
数据仓库 vs 数据湖 vs 数据中台 vs 湖仓一体
| 维度 | 数据仓库(DW) | 数据湖(Data Lake) | 湖仓一体(Lakehouse) | 数据中台 |
|---|---|---|---|---|
| 数据形态 | 结构化、已清洗 | 原始数据、多结构混合 | 原始 + 结构化共存 | 跨域数据资产 |
| Schema 时机 | Schema-on-Write(写入时定义) | Schema-on-Read(读取时解释) | 表格式提供 Schema 演进 | — |
| 用途 | BI 报表、固定分析 | AI / ML、数据探索 | BI + ML「一份存储两种用法」 | 数据复用 + 服务化(OneID/OneModel/OneService) |
| 代表 | Hive / Greenplum / Teradata | HDFS / S3 + 原始文件 | Apache Iceberg / Hudi / Delta Lake | 阿里数据中台、网易猛犸 |
| 核心能力 | 严格、可信 | 灵活、低成本 | ACID + Time Travel + Schema 演进 + 流批一体 | 资产盘点 + 标签体系 + 数据 API |
OLTP vs OLAP
| 维度 | OLTP(联机事务处理) | OLAP(联机分析处理) |
|---|---|---|
| 面向 | 事务(增删改查) | 分析(多维聚合、钻取) |
| 设计范式 | 范式化(3NF),减少冗余 | 星型 / 雪花模型(维度建模),适度冗余 |
| 存储 | 行存(一行数据连续存放) | 列存(同一列连续存放,压缩比高、聚合快) |
| 数据量 | 较小(当前业务数据) | 通常远大于 OLTP(含历史聚合,PB 级) |
| 典型系统 | MySQL / Oracle 业务库 | ClickHouse / Druid / Doris / Kylin / Hive |
维度建模 + ETL vs ELT
- 事实表(Fact):记录业务过程的度量值(销售额、订单数),外键指向各维度表,行数大。
- 维度表(Dimension):描述性属性(时间、地区、商品、用户),行数小,相对稳定。
- 星型模型:一张事实表 + 多张维度表直连,维度表不再规范化(查询快、冗余多)。
- 雪花模型:维度表进一步规范化拆成多层(省 → 市 → 区),减冗余但 JOIN 变多。
- 星座模型(事实星座):多张事实表共享维度表。
- ETL:抽取 → 转换 → 加载,转换在中间引擎做(传统数仓)。ELT:抽取 → 加载 → 转换,先入湖再用湖内算力做转换(湖仓时代,「算力下沉」)。
NoSQL 四大类 + CAP / BASE
| 类型 | 代表 | 数据模型 | 适用场景 | CAP 取向 |
|---|---|---|---|---|
| 键值 | Redis / Memcached | key → value | 缓存、会话、排行榜(ZSet)、计数 | AP(Redis 集群) |
| 文档 | MongoDB / CouchDB | JSON / BSON 文档 | 半结构化内容、灵活 Schema、聚合管道 | CP(MongoDB 默认) |
| 列族 | HBase / Cassandra | 行键 + 列族 | 海量稀疏数据(日志、IoT、用户画像宽表)、随机读写 | HBase = CP,Cassandra = AP |
| 图 | Neo4j / JanusGraph | 点 + 边 + 属性 | 社交关系、金融反欺诈、推荐、知识图谱 | 视实现而定 |
- CAP 定理:一致性(Consistency)/ 可用性(Availability)/ 分区容错性(Partition Tolerance)三者不可兼得;分布式系统必选 P,于是在 CP(ZooKeeper / Etcd / HBase)与 AP(Cassandra / Dynamo)之间取舍。
- BASE:Basically Available(基本可用)+ Soft state(软状态)+ Eventually consistent(最终一致),是 NoSQL 对 ACID 强一致的妥协,对应”柔性事务”。
数据治理(数据湖 / 数据中台核心)
| 维度 | 含义 | 代表工具 |
|---|---|---|
| 数据质量 | 完整性 / 准确性 / 一致性 / 及时性校验 | Great Expectations、自研规则引擎 |
| 元数据管理 | 技术元数据 + 业务元数据 + 操作元数据 | Apache Atlas、DataHub |
| 数据血缘 | 字段级 / 表级上下游溯源,影响分析 | Atlas、SQL 解析 |
| 数据安全 / 脱敏 | 分级分类、字段级 ACL、动态脱敏、加密 | Apache Ranger |
| 主数据管理(MDM) | 客户 / 商品 / 组织等核心数据的唯一权威来源 | 自研 MDM 平台 |
答题口诀:”数据治理 = 元数据 + 质量 + 血缘 + 安全脱敏 + 主数据“五位一体,配合 OneID / OneModel / OneService 输出数据资产。
二、高频选择题(18 题,✅ 为正确选项)
1. HDFS 中默认的数据块副本数是:
A. 1 B. 2 ✅ C. 3 D. 5
默认 3 副本(同机架 2 份 + 跨机架 1 份),保证高可用与就近读取。
2. HDFS 中负责存储文件元数据(目录树、块位置映射)的组件是:
✅ A. NameNode B. DataNode C. SecondaryNameNode D. JournalNode
NameNode 管元数据,DataNode 存实际数据块;SecondaryNameNode 只做 fsimage 合并,不是热备。
3. MapReduce 的执行流程正确顺序是:
A. Reduce → Shuffle → Map ✅ B. Map → Shuffle → Reduce C. Map → Reduce → Shuffle D. Shuffle → Map → Reduce
Map 阶段产出键值对,Shuffle 做分区 / 排序 / 合并并拉取,Reduce 汇总。
4. YARN 中负责全局资源调度的组件是:
✅ A. ResourceManager B. NodeManager C. ApplicationMaster D. Container
RM 全局调度,NM 管单节点资源,AM 管单个应用,Container 是资源封装单位。
5. 关于 Hive 与 HBase 的对比,描述错误的是:
A. Hive 适合离线批量分析,HBase 适合海量随机读写 B. Hive 提供类 SQL 查询(HQL),HBase 提供 API 级访问 C. 两者底层都可基于 HDFS ✅ D. HBase 适合复杂多表 JOIN 的 OLAP 分析
HBase 是列族 NoSQL,不擅长多表 JOIN;复杂 OLAP 用 ClickHouse / Doris / Hive。
6. 关于 Spark 比 MapReduce 快的原因,描述错误的是:
A. Spark 基于内存计算,减少磁盘 I/O B. Spark 用 DAG 调度,可做宽窄依赖优化 C. Spark 支持迭代式计算(如机器学习)效率高 ✅ D. Spark 不需要 Shuffle,因此更快
Spark 同样有 Shuffle(宽依赖会触发),只是整体更高效,并非”没有 Shuffle”。
7. 下列计算引擎中,真正的流式处理(事件时间 + 水印 + 强状态 + Exactly-Once)的是:
A. MapReduce B. Spark Core C. Spark Streaming(微批) ✅ D. Flink
Spark Streaming 是微批(Micro-Batch),Flink 是原生流,延迟更低、状态更强。
8. 大数据 5V 特征不包括:
A. Volume(体量) B. Velocity(速度) C. Veracity(真实性) ✅ D. Visibility(可见性)
5V = Volume / Velocity / Variety / Veracity / Value。
9. Lambda 架构由哪三层构成?
✅ A. 批处理层 + 速度层 + 服务层 B. 采集层 + 计算层 + 展示层 C. 接入层 + 应用层 + 数据层 D. ODS + DWD + ADS
Batch Layer(精确)+ Speed Layer(实时)+ Serving Layer(合并查询),缺一不可。
10. 关于 Lambda 架构与 Kappa 架构的对比,描述正确的是:
A. Kappa 保留批处理层,去掉速度层 ✅ B. Kappa 只保留流处理层,用流重放历史代替批处理 C. Lambda 比 Kappa 运维更简单 D. Kappa 一定优于 Lambda
Kappa 简化架构但回溯(重放历史)成本高;长周期复杂业务仍常用 Lambda。
11. 数据仓库的数据特征不包括:
A. 面向主题 B. 集成性 C. 反映历史变化 ✅ D. 实时高频更新
数仓四特征:面向主题、集成、相对稳定(非实时)、反映历史变化(随时间变化)。
12. 数据湖与数据仓库的核心区别在于:
✅ A. 数据湖是 Schema-on-Read,数据仓库是 Schema-on-Write B. 数据湖只能存结构化数据 C. 数据仓库不需要 ETL D. 数据湖一定比数据仓库快
湖在读取时才解释结构(灵活),仓在写入时强约束结构(严格、可信)。
13. 关于 OLTP 与 OLAP 的对比,描述错误的是:
A. OLTP 面向事务,OLAP 面向分析 B. OLTP 多用范式化设计,OLAP 多用星型/雪花模型 C. OLAP 常用列式存储 ✅ D. OLTP 的数据量通常远大于 OLAP
OLAP 含大量历史与聚合数据,数据量通常远大于 OLTP。
14. 维度建模中,星型模型与雪花模型的主要区别是:
A. 星型有事实表,雪花没有 ✅ B. 雪花模型的维度表进一步规范化拆分,星型模型维度表不规范化 C. 星型只能有一张维度表 D. 雪花模型查询一定更快
雪花减冗余但 JOIN 增多查询变慢;星型查询快但维度表冗余。
15. 下列 NoSQL 中,最适合存储用户画像宽表(海量、稀疏、随机读写)的是:
A. Redis B. MongoDB ✅ C. HBase D. Neo4j
列族数据库天然适合稀疏宽表与随机读写;Redis 适合热点缓存,Neo4j 适合关系。
16. 下列 NoSQL 中,最适合社交关系网络 / 金融反欺诈的是:
A. Redis B. MongoDB C. HBase ✅ D. Neo4j
图数据库擅长多跳关系遍历(三度好友、资金链路追踪)。
17. 湖仓时代将传统 ETL 改为 ELT,其核心变化是:
✅ A. 先加载原始数据入湖,再用湖内算力做转换(算力下沉) B. 取消数据转换环节 C. 转换必须在关系库里做 D. 加载必须在转换之后
ELT = Extract → Load → Transform,先入湖保留原始数据,转换下沉到湖内引擎(Spark/Flink)。
18. 关于 CAP 定理在 NoSQL 中的体现,描述错误的是:
A. 分布式系统必须满足分区容错性 P B. HBase 偏向 CP(强一致) C. Cassandra 偏向 AP(高可用) ✅ D. 一个系统可以同时完全满足 C、A、P 三者
CAP 三者不可兼得,分区发生时只能在 C 与 A 之间二选一。
原文 + 解析:
exam-bank/03-database.md(含 NoSQL 与大数据相关题)、knowledge-index/19-big-data.md
三、案例答题套路(大数据 / 高并发 Web 架构,25 分)
这类题给一段”海量数据 + 实时分析 + 离线报表”或”高并发 Web”的场景(电商用户行为分析、实时大屏、风控、运营商话单、数据中台),按下面 6 步铺答案,每点一句结论 + 一句理由 / 参数。
① 数据采集层
- 业务日志 / 客户端埋点 → Flume / Filebeat / Logstash;数据库变更 → Canal / Debezium(CDC);关系库批量同步 → Sqoop。
- 统一进 Kafka(分区数 + 副本因子 3 + 保留 7 天)做削峰 + 解耦 + 回放——“Kafka 是采集与处理之间的解耦中枢”。
- 数据契约:Avro / Protobuf + Schema Registry 强约束,防上游随意改字段。
② 存储分层(冷热分层)
- 热数据(最近 30 天,亚秒查)→ ClickHouse / Druid;温数据(半年,明细随机读)→ HBase;冷数据(多年归档)→ HDFS / S3 + ORC/Parquet + Snappy(压缩比 5~10 倍);热点 KV → Redis。
- “冷热分层 = 用存储成本换查询性能”,归档数据降级到对象存储省 50%+ 成本。
③ 计算引擎选型
| 场景 | 选型 | 理由 |
|---|---|---|
| 离线批处理(T+1 数仓 ETL) | Spark(迭代/内存敏感)/ MapReduce(简单 ETL) | DAG + 内存计算,全量精确 |
| 实时流计算(秒级看板、风控) | Flink | 真流 + 事件时间 + Exactly-Once |
| 即席查询 / BI(分析师 SQL) | Presto/Trino、ClickHouse | 列存、亚秒级聚合 |
| 数据仓库(固定报表分层) | Hive(+ Spark/Tez 引擎) | SQL on Hadoop、生态成熟 |
④ 架构模式选型(Lambda vs Kappa——必给选型依据)
- 需要历史回溯 + 实时、对精确度要求高、数据规模大(回填 Kappa 重放慢)→ Lambda;
- 业务主要看实时、数据规模较小(< 10TB/日)、不需要重跑长周期历史、想简化运维 → Kappa;
- 团队 Flink 成熟、想消除双代码 → 演进到 批流一体(Flink Batch Mode)/ 湖仓一体(Iceberg + Flink)。
⑤ 数据服务层
- OLAP 引擎(ClickHouse/Druid)对外提供多维查询;Redis 提供毫秒级特征 / 热点查询;HBase 提供画像宽表点查;统一用 gRPC/Dubbo + 数据 API 网关 对外,限流 + 鉴权。
⑥ 数据治理与质量
- 元数据 + 血缘(Atlas)+ 数据质量(Great Expectations)+ 安全脱敏(Ranger)+ 主数据 MDM 五位一体;
- 调度用 Airflow / DolphinScheduler,跑数千离线任务 + SLA 监控(批延迟 SLA、流延迟 SLA、质量异常率 < 0.1%)。
万能高分句
- “采用 Lambda 架构:批层 Spark 保证全量精确(真相之源),速度层 Flink 实时计算补全时间窗口,服务层 ClickHouse 合并批 + 流结果对外亚秒级查询。”
- “OLAP 查询引擎选 ClickHouse,单查询亚秒级,支持 100 亿行明细。”
- “Flink 通过 Checkpoint + 两阶段提交(2PC)+ 幂等 Sink 三件套保证 Exactly-Once 语义。”
- “通过 CDN + 多级缓存(本地 Caffeine + Redis)+ 异步削峰(MQ) 支撑双 11 峰值 QPS 50 万,多级缓存削峰比 10000:1。”
- “针对数据倾斜采用加盐打散 + 二次聚合 + Map 端 Combiner,配合 Spark AQE 把任务从 4h 降至 30min。”
常见陷阱
| ❌ | ✅ |
|---|---|
| 只讲 Hadoop / 只讲离线 | 必须**实时(Flink)+ 离线(Spark)**结合 |
| 画 Lambda 漏掉服务层 | 批 + 速度 + 服务三层缺一不可 |
| NoSQL 一把梭 | 按数据结构 + 访问模式选型,每个 NoSQL 给场景理由 |
| Kappa 答”完全取代 Lambda” | 大数据规模下回填代价高,Lambda 仍是常见阶段性方案 |
| 不谈数据治理 | 元数据 / 血缘 / 质量 / 脱敏是数据湖/中台核心 |
| 不做容量估算 | QPS / TPS / 存储要量化到分区 / 节点数(含 1.2~1.5 冗余系数) |
| Web 只讲缓存 | 接入 + 应用 + 缓存 + DB 全链路,CDN 是首要削峰利器 |
完整套路 + Web 高并发四层架构 + 容量估算方法,见
case-types/09-big-data-architecture.md。
四、完整模拟案例题(25 分)
⚠️ 自主命题改编,建议严格 25 分钟限时作答。仓库这一题型共 3 道完整模拟题(用户行为 Lambda 架构 · 数据湖仓一体 Lakehouse · Web 高并发三层架构 + CDN + LB,均含题干、参考答案、评分要点),见
case-types/09-big-data-architecture.md。下面摘录最经典的一道。
模拟题 · 短视频平台「用户行为分析平台」Lambda 架构选型
【题干简述】 某头部短视频平台日活 3 亿,要基于用户行为日志(曝光 / 点击 / 播放 / 点赞 / 评论 / 关注 / 完播)构建统一的”用户行为分析平台”,同时满足:① 离线 T+1 报表(精算 KPI、留存、漏斗);② 实时秒级看板(大促直播间、广告投放效果);③ 小时级 AB 实验分析;④ 毫秒级实时用户画像写入推荐系统。数据规模:日均日志 1500 亿条 / 80 TB,峰值 400 万条/秒;冷热分层——热(30 天)ClickHouse、温(半年)HBase、冷(3 年)HDFS + ORC + Snappy。架构师 G 拟采用 Lambda 架构:客户端 SDK → Filebeat → Kafka(200 分区、副本 3、保留 7 天);批处理层 Kafka → HDFS(ORC + Snappy)→ Spark(每日 02:00)→ Hive ODS/DWD/DWS/ADS 四层数仓 → ClickHouse;速度层 Kafka → Flink(Checkpoint 30s、Exactly-Once)→ ClickHouse / Redis / HBase;服务层 批 + 流结果合并;调度 DolphinScheduler + Airflow;治理 Atlas(元数据 + 血缘)+ Great Expectations(质量)+ Ranger(权限)。业务方质疑:① 为何不直接用 Kappa 替代 Lambda 双层?② Flink Exactly-Once 怎么保证?③ Lambda 两份代码逻辑漂移怎么办?④ 实时大屏看到的数据该信批层还是速度层?
问 1(10 分):画出本系统完整的 Lambda 架构数据流图(采集 → 批层 / 速度层 → 服务层 → 应用层),并解释 Lambda 三层模型(批处理层 / 速度层 / 服务层)的职责分工。
问 2(6 分):Lambda vs Kappa 选型——本系统为何选 Lambda 而不是 Kappa?请从精确度、复杂度、回填能力、运维成本 4 个维度分析。
问 3(5 分):Flink Exactly-Once 语义如何实现?请描述 Checkpoint + 两阶段提交(2PC)+ 幂等 Sink 的协同机制。
问 4(4 分):Lambda 架构两份代码导致逻辑漂移是常见痛点,请给出至少 2 种业界解决方案。
【参考答案要点】
问 1 数据流:客户端 SDK 埋点 / 服务端日志 → Filebeat → Kafka(中枢);DB 变更 → Canal → Kafka。批处理层:Kafka → HDFS 落地(ORC + Snappy)→ Spark(每日 02:00 全量)→ Hive 四层数仓(ODS/DWD/DWS/ADS)→ ClickHouse 报表层。速度层:Kafka → Flink(Checkpoint 30s、Exactly-Once)→ 实时聚合去重 → ClickHouse / Redis(特征)/ HBase(画像宽表)。服务层:批 + 流结果在 ClickHouse 按时间窗口拼接合并对外查询。应用层:T+1 BI 报表 / 实时大屏 / 推荐系统 / AB 实验平台。
三层职责:批处理层 = 全量数据精确计算、T+1 离线,作为「真相之源(Single Source of Truth)」(Spark + Hive,处理 80TB/日全量);速度层 = 增量数据实时计算,牺牲精度换低延迟,弥补批层时间窗口(Flink,秒级延迟,最近 N 分钟数据);服务层 = 合并批 + 流结果对外提供查询(ClickHouse 同时容纳两层结果,按时间窗口拼接)。
问 2 四维度对比:
| 维度 | Lambda | Kappa |
|---|---|---|
| 精确度 | ✅ 批层全量精确,流层近似 | ⚠ 仅流式,依赖 Exactly-Once |
| 复杂度 | ❌ 双套代码、运维 2 套集群 | ✅ 单套代码、仅 Flink |
| 回填能力 | ✅ 批层重跑历史,1500 亿条 4 小时跑完 | ❌ 仅靠 Kafka 回放,3PB 从头消费需 7+ 天 |
| 运维成本 | ❌ Spark + Flink 双团队 | ✅ 仅 Flink 团队 |
选 Lambda 的理由:① 数据规模决定——累计 3PB,Kappa 重放 Kafka 需 7+ 天,业务不可接受,Spark 4 小时跑完更经济;② 精确度要求——KPI 报表用于决策和 AB 实验显著性检验,必须全量精确;③ 历史回溯——分析师常 SQL 查 1 年内任意时间段数据立方体,Kappa 仅靠 Kafka 保留无法支持;④ 成熟度——Spark + Hive 数仓 10 年成熟,团队有沉淀;⑤ Kappa 适合数据规模较小(< 10TB/日)+ 不需重跑历史的纯流式业务(IoT、监控)。
问 3 Flink 通过三件套保证 Exactly-Once:① Checkpoint Barrier 注入——JobManager 周期性(30s)发出 Barrier 从 Source 注入数据流,Barrier 流经所有算子触发 State 快照到分布式存储(HDFS/S3);② 两阶段提交(Sink 端)——Phase 1 PreCommit:Sink 收到 Barrier 后把缓冲数据写入”预提交”状态(如 Kafka Producer 开启事务),上报 JobManager;Phase 2 Commit:所有算子 PreCommit 成功后 JobManager 触发全局 Commit,Sink 提交事务(Kafka commitTransaction)数据真正可见,任一节点 PreCommit 失败则全局 Rollback 回到上一个 Checkpoint;③ 幂等 Sink 兜底——Kafka 用 transactional.id + idempotent、MySQL 用 INSERT … ON DUPLICATE KEY UPDATE、HBase 基于 RowKey 天然幂等。故障恢复时 Flink 从最后成功 Checkpoint 恢复 State + Source 偏移量,重算 + 2PC,对外精确一次。
问 4 解决两份代码逻辑漂移的方案(≥2 种):① Apache Beam(统一编程模型)——一份 Beam Pipeline 代码,通过 Runner 适配 Spark/Flink/Dataflow,代价是学习成本高、生态不如原生;② 批流一体(Kappa+)——仅保留 Flink 一套,批处理用 Flink Batch Mode(基于 DataStream API),统一 SQL,代价是 Flink 批量场景仍弱于 Spark;③ 湖仓一体(Lakehouse)——一套数据用 Iceberg/Hudi 统一存储,Spark 批 + Flink 流共享数据、SQL 统一,代价是需引入新存储格式;④ 代码同源 + 双 CI——共享 UDF 库,批/流主控制流分离但核心计算逻辑一份,CI 同步校验(治标)。推荐演进路线:第 1 年共享 UDF + 双 CI 兜底;第 2 年推进湖仓一体(Iceberg)统一 Spark + Flink SQL;第 3 年评估 Kappa+。
完整版(含 Mermaid 数据流图、详细评分要点、常见扣分点、高分技巧)见
case-types/09-big-data-architecture.md模拟题 1。另两道(数据湖仓一体 Lakehouse · Web 高并发三层架构 + CDN + LB 容量估算)也在同一文件。
五、论文万能提纲(约 2500 字)
典型题目:论大数据处理架构及其应用 / 论 Lambda(Kappa)架构及其应用 / 论 NoSQL 数据库的应用 / 论数据湖与数据仓库 / 论数据中台建设。
1 | 1. 背景(350 字)— 海量数据 / 实时分析需求;数据规模量化(日增 100 亿条 / 10TB / PB 级存储); |
摘要模板:”我于 2023 年参与了 {电商用户行为分析 / 工业 IoT 监控 / 金融实时风控} 平台建设,担任 {大数据架构师}。系统接入 {日增 100 亿条事件 / 10TB 数据 / 1000 万 DAU},要求实时延迟 < 1 秒、离线 T+1 准确。本文论述 Lambda 架构在该项目的落地:采集层 Flume + Kafka、存储层 HDFS + HBase + Redis 冷热分层、计算层 Spark 批 + Flink 流、查询层 ClickHouse OLAP、治理层 Atlas 血缘 + Great Expectations 质量。最终实时大屏延迟 800ms、离线报表 T+1 凌晨 6 点完成、查询 QPS 12 万、整体压缩比 7 倍、存储成本降 60%。同时分析了 Lambda 双链路维护成本高的问题,给出向湖仓一体 / Kappa+ 演进的路线。”
加分关键词:大数据 5V、Lambda、Kappa、批流一体、HDFS/MapReduce/YARN、Hive、HBase、Spark、Flink、Checkpoint、Exactly-Once、2PC、Kafka、ClickHouse/Druid、数据湖、数据仓库、湖仓一体(Iceberg/Hudi/Delta Lake)、Schema-on-Read、ETL/ELT、星型/雪花模型、CAP、BASE、NoSQL 四类、数据中台、OneID/OneModel/OneService、元数据/血缘/数据质量/数据脱敏/MDM;业界对标:阿里 MaxCompute / 数据中台、字节 ByteHouse、网易猛犸、Netflix Iceberg、Databricks Delta Lake / Lakehouse、Nathan Marz《Big Data》。
避坑:① 只提 Hadoop → 必须实时(Flink)+ 离线(Spark)结合;② NoSQL 混用不说理由 → 每个 NoSQL 必须给场景匹配理由(Redis 热点缓存、HBase 海量明细、ClickHouse OLAP、Neo4j 关系);③ 不谈数据治理 → 元数据 / 血缘 / 质量是数据湖核心;④ 无数据量 → 必须量化(日 X 亿条 / X TB / 实时 < 1s / 离线 T+1 / 查询 QPS X 万 / 压缩比 7x);⑤ Lambda vs Kappa 写成”二选一” → 实际 Lambda 是阶段性、Kappa 是演进方向;⑥ Redis 当数据库用 → 缓存与持久化分清,主存数据放 MySQL/HBase。
完整理论 + 模拟论文(2 道,含提纲式参考答案、评分维度对照表、加分关键词清单):
paper-topics/06-big-data-nosql.md;大数据案例笔记:notes/18-case-big-data/README.md
软考专题系列第 10 篇。同系列:架构评估 ATAM · 架构风格对比 · 微服务与云原生 · 数据库设计 · 消息中间件与缓存 · 法律法规与标准化 · 计算题专项 · 软件架构安全 · 设计模式 GoF 23。完整清单见 软考导览页。发现题目错误欢迎到 仓库 开 issue。







