🏠 首页›第二梯队 · 案例选答专题 · 第 22 小时 · 大数据架构设计

大数据架构设计理论与实践

案例 25 分论文高频
📄 教材出处 · 第 22 小时《大数据》 (书第 188–197 页) ▸ 查看原文摘录 打开教材 PDF ↗
第 188 页 ↗大数据架构设计理论与实践 22.0 章节考点分析 主要学习大数据方向软件架构的发展和工作中的实践。
第 189 页 ↗ 伴随多年的研究,当前主要技术实践中以Lambda架构、Kappa架构和IOTA架构较为典型, 但新版考试大纲中主要考查Lambda架构、Kappa架构在设计中的理论、理解及实践。
第 190 页 ↗ 22.3 典型的大数据架构 【基础知识点】 1.Lambda架构 Lambda架构是一种用于同时处理离线和实时数据的、可容错的、可扩展的分布式系统,如图 22.2所示。
第 191 页 ↗架 构实现方面可以使用Hadoop HDFS或HBase存储实时数据,利用Spark或Storm实现实时数据处 理和实时视图。
第 192 页 ↗图22.4 Kappa+架构 Flink 源数据 Kafka ElasticSearch 图22.5 混合分析系统Kappa架构 3.Lambda架构与Kappa架构的对比 两种架构特性对比,见表22.1。
第 193 页 ↗大数据架构设计理论与实践 185 表22.2 影响Lambda架构和Kappa架构选择的决策因素 设计考虑 Lambda架构 Kappa架构 业务需求与技术要求 依赖Hadoop、Spark、Storm技术 依赖Flink计算引擎,偏流式计算 复杂度 实时处理和离线处理结果可能不一致 频繁修改算法模型参数 开发维护成本 成本预算充足 成本预算有限 历史数据处理能力 频繁使用海量历史数据 仅使用

知识点目录(共 5 项)

  1. 传统数据处理系统的问题(容量 / 性能 / 扩展性)
  2. Lambda 架构:批处理层(全量准确)+ 加速层(增量实时)+ 服务层
  3. Kappa 架构:一条流管道 + 可重放日志(Kafka);Kappa+ 混合分析
  4. Lambda vs Kappa 特性对比与选型决策因素
  5. 实践案例:视频平台 / 广告平台(Lambda)、证券 / 电商智能决策(Kappa)

知识点详解

一、传统数据处理系统的问题

数据过载问题:传统应用直接访问数据库,用户访问量增加时数据库无法支撑负载,出现超时错误。常用解决方法 5 种:

大数据特点:体量大、时效性强,并非构造单调而是类型多样;重在发掘数据间的相关性而非传统逻辑上的因果关系;目的和价值在于发现新知识、洞悉并科学决策。

现代大数据处理技术 3 类:① 基于分布式文件系统 Hadoop;② 使用 Map/Reduce 或 Spark 数据处理技术;③ 使用 Kafka 数据传输消息队列及 Avro 二进制格式。

大数据利用过程 4 步:采集 → 清洗 → 统计 → 挖掘。

大数据处理系统面临的挑战:① 如何处理非结构化和半结构化数据;② 如何探索大数据复杂性、不确定性特征描述的刻画方法及系统建模;③ 数据异构性与决策异构性对知识发现与管理决策的影响。

应具有的属性特征:鲁棒性和容错性、低延迟、横向扩展、通用、可扩展、即席查询(用户按自己的要求进行查询)、最少维护、可调试。

二、Lambda 架构(批 + 流双管道)

Lambda 架构是用于同时处理离线和实时数据的、可容错、可扩展的分布式系统,分三层:

全部数据 批处理层 Batch Layer 存储主数据集(原始/不可变/真实)周期批处理 → 批视图 加速层 Speed Layer 处理增量实时数据 → 实时视图,快速即席查询 服务层 Serving Layer 合并批视图 + 实时视图 → 最终数据集,响应用户请求 用户查询 HDFS/HBase 存储 · Spark/MapReduce 计算 Spark/Storm 实时处理
图 1 Lambda 架构:批处理层 + 加速层 + 服务层
层核心功能架构实现
① 批处理层存储主数据集(具有原始、不可变、真实的特征),周期性将增量数据转储至主数据集并执行批处理,生成批视图Hadoop HDFS 或 HBase 存储主数据集;Spark 或 MapReduce 执行周期批处理并创建批视图
② 加速层处理增量实时数据,生成实时视图,快速执行即席查询HDFS/HBase 存储实时数据;Spark 或 Storm 实现实时处理
③ 服务层响应用户请求,合并批视图和实时视图的结果数据集得到最终数据集HBase 或 Cassandra 作服务层,Hive 创建可查询视图

优点:容错性好、查询灵活度高、弹性伸缩、易于扩展。缺点:编码量大、持续处理成本高、重新部署和迁移成本高。

与 Lambda 相似的模式:事件溯源模式、命令查询职责分离(CQRS)模式。

三、Kappa 架构(一条流管道)

Kappa 架构在 Lambda 基础上优化,删除了批处理层(Batch Layer),将数据通道以消息队列替代,只分两层:

层核心功能架构实现
① 实时层处理输入数据,生成实时视图——流式处理引擎逐条处理Apache Kafka 回放(重放历史)数据,Flink 或 Spark Streaming 处理
② 服务层使用实时视图中的结果数据集响应用户请求实践中使用数据湖中的存储作为服务层

本质:通过改进 Lambda 的加速层,使它既能进行实时数据处理,也有能力在业务逻辑更新时重新处理以前处理过的历史数据(靠 Kafka 日志可重放)。

优点:将离线和实时处理代码统一,方便维护。缺点:消息中间件有性能瓶颈、数据关联时处理开销大、抛弃了离线计算的可靠性。

常见变形:Kappa+ 架构;混合分析系统 Kappa 架构(源数据 → Kafka → Flink → ElasticSearch)。

四、Lambda vs Kappa 对比与选型(必背表)

对比内容Lambda 架构Kappa 架构
复杂度与开发维护成本维护两套系统(引擎),复杂度高,成本高维护一套系统(引擎),复杂度低,成本低
计算开销周期性批处理计算 + 持续实时计算;计算开销大必要时进行全量计算;计算开销相对较小
实时性满足实时性满足实时性
历史数据处理能力批式全量处理,吞吐量大,历史数据处理能力强流式全量处理,吞吐量相对较低,历史数据处理能力相对较弱
一致性问题批视图与实时视图存在冲突可能(结果可能不一致)统一流处理,无两视图冲突

选型决策四因素:

设计考虑选 Lambda选 Kappa
业务需求与技术要求依赖 Hadoop、Spark、Storm 技术依赖 Flink 计算引擎,偏流式计算
复杂度实时处理和离线处理结果可能不一致(可接受)频繁修改算法模型参数(重放即可生效)
开发维护成本成本预算充足成本预算有限
历史数据处理能力频繁使用海量历史数据仅使用小规模数据集
💡 记忆:Lambda = "两条腿走路"(批 accurate + 流 fast,服务层合并),贵在维护两套代码;Kappa = "一条流走到黑"(Kafka 可重放代替批层),便宜但历史吞吐弱。口诀:"要历史海量用 Lambda,要简单省钱用 Kappa"。

五、大数据架构实践四案例(案例题原型)

案例架构关键实现
① 大规模视频网络(奥运会直播平台)Lambda数据采集层(Flume/ETL/采集端)→ 数据集成层(Kafka 实时 + Sqoop 离线)→ 数据存储层(MemSQL/HBase/HDFS)→ 数据计算层分三部分:离线计算(Spark、MapReduce 周期批处理,Impala/Hive 建数仓写入 HDFS)、实时计算(Spark Streaming 只处理实时增量,更新实时视图)、合并计算(合并两视图写入 HBase 响应查询)→ 数据展现层
② 广告平台Lambda批处理层:凌晨将 Kafka 浏览/下单消息同步到 HDFS → 解析为 Hive 表 → HQL/Spark SQL 计算分区统计 → 转储 MySQL 作批视图;加速层:Spark Streaming 实时监听 Kafka 消息,计算追踪链接维度实时数据存 Redis 作实时视图;服务层:Java Web 服务提供 HTTP 接口,读 MySQL 批视图 + Redis 实时视图
③ 证券公司智能决策大数据系统Kappa实时日志分析平台:日志采集(Filebeat 实时采集推送 Kafka 缓存)→ 日志清洗解析(Flink 实时读取 Kafka,解析日志文本转成指标)→ 日志存储(日志转储 ElasticSearch,指标转储 OpenTSDB)→ 日志监控(单独告警消息队列,保持监控消息时序管理和实时推送)
④ 电商智能决策大数据系统Kappa统一数据处理引擎 Funk 实时处理流数据,存储到 Hive 与分布式缓存 Tair:数据采集(B 端采集点击/下单/广告曝光/出价推送 Kafka)→ 数据清洗聚合(Flink 按需过滤转指标)→ 数据存储(计算结果转 Hive 日志库,模型参数转 Tair 缓存)→ 后续决策服务从 Tair 取数做模型训练
⚠️ 案例答题套路:给架构图判断类型——看到"Kafka 同时喂给离线批处理(Hive/MR/Spark)和实时流处理(Flink/Storm),最后合并结果"就是 Lambda;看到"只有 Kafka → 流处理引擎 → 存储服务"就是 Kappa。回答层次时按"数据采集层 → 数据源/存储层 → 批处理层 → 加速层 → 服务层"顺序作答。
💡 本节框架:"传统五招救过载 → Lambda 三层(批/加速/服务)→ Kappa 两层(实时/服务)→ 对比四维(复杂度/计算开销/实时性/历史能力)→ 选型四因素 → 四个实战案例"。大数据利用四步:采清统挖。