2188 字
约 7 分钟
5
系统架构教程第13章:大数据架构
无标签

系统架构教程第13章:大数据架构

章节头部 第13章

📊 大数据架构

掌握大数据处理流程、架构模式和核心技术,构建高效的大数据处理系统
学习目标

学习目标

  • 理解大数据处理的基本流程和挑战
  • 掌握数据采集、存储、处理和分析的核心技术
  • 学习Lambda架构和Kappa架构的设计原理
  • 了解大数据生态系统的主要组件和工具

大数据处理流程

大数据处理流程

大数据处理是一个复杂的端到端流程,涉及数据的采集、存储、处理、分析和可视化等多个环节。每个环节都有其特定的技术挑战和解决方案。

大数据的4V特征

Volume(体量):数据量巨大,从TB到PB级别Velocity(速度):数据产生和处理速度快Variety(多样性):数据类型多样,结构化、半结构化、非结构化Veracity(真实性):数据质量和可信度的挑战

典型处理流程

数据采集 → 数据存储 → 数据处理 → 数据分析 → 数据可视化

每个阶段都需要选择合适的技术栈和架构模式
数据采集从各种数据源收集数据,包括日志文件、数据库、API、传感器等。数据存储将采集的数据存储在分布式存储系统中,确保数据的可靠性和可扩展性。数据处理对存储的数据进行清洗、转换、聚合等处理操作。数据分析运用统计学、机器学习等方法从数据中提取有价值的信息。 数据采集

数据采集

数据采集是大数据处理的第一步,需要从多种异构数据源中高效、可靠地收集数据。采集系统需要处理不同的数据格式、传输协议和数据量级。

采集方式分类

实时采集

  • 流式数据采集
  • 事件驱动采集
  • 消息队列采集
  • API实时拉取

批量采集

  • 定时任务采集
  • 数据库同步
  • 文件批量导入
  • ETL工具采集

常用采集工具

  • Apache Flume:分布式日志采集系统,支持多种数据源
  • Apache Kafka:高吞吐量的分布式消息系统
  • Logstash:数据收集引擎,支持多种输入输出
  • Filebeat:轻量级日志采集器
  • Sqoop:Hadoop和关系数据库之间的数据传输工具

采集挑战

数据一致性:确保数据在采集过程中不丢失、不重复性能优化:处理高并发、大流量的数据采集容错处理:应对网络故障、系统异常等情况数据格式:处理多种数据格式和编码方式
数据存储

数据存储

大数据存储需要解决海量数据的存储、管理和访问问题。不同类型的数据和应用场景需要选择不同的存储方案。

存储类型

分布式文件系统

  • HDFS(Hadoop分布式文件系统)
  • Amazon S3
  • Google Cloud Storage
  • Azure Blob Storage

NoSQL数据库

  • HBase(列式存储)
  • MongoDB(文档存储)
  • Cassandra(宽列存储)
  • Redis(键值存储)

数据仓库

  • Apache Hive
  • Amazon Redshift
  • Google BigQuery
  • Snowflake

存储策略

分层存储

热数据:频繁访问的数据,存储在高性能存储中温数据:偶尔访问的数据,存储在标准存储中冷数据:很少访问的数据,存储在低成本存储中归档数据:长期保存的数据,存储在归档存储中
数据处理

数据处理

数据处理是大数据架构的核心环节,包括数据清洗、转换、聚合、计算等操作。根据处理时效性可分为批处理和流处理两种模式。

处理模式

批处理
**特点:**处理大量历史数据,延迟较高但吞吐量大

  • Apache Hadoop MapReduce
  • Apache Spark
  • Apache Flink(批处理模式)

流处理
**特点:**实时处理数据流,延迟低但处理复杂度高

  • Apache Storm
  • Apache Flink
  • Apache Kafka Streams
  • Apache Spark Streaming

处理框架对比

  • Hadoop MapReduce:成熟稳定的批处理框架,适合大规模数据处理
  • Apache Spark:内存计算框架,支持批处理和流处理,性能优异
  • Apache Flink:低延迟流处理框架,支持事件时间处理
  • Apache Storm:实时流处理框架,保证数据处理的可靠性

数据分析

数据分析

数据分析是从大数据中提取价值的关键步骤,包括描述性分析、预测性分析和处方性分析等不同层次。

分析类型

描述性分析
回答"发生了什么"的问题

  • 数据统计和汇总
  • 趋势分析
  • 报表生成

预测性分析
回答"将会发生什么"的问题

  • 机器学习模型
  • 时间序列预测
  • 风险评估

处方性分析
回答"应该做什么"的问题

  • 优化算法
  • 决策支持
  • 自动化决策

分析工具和平台

  • Apache Spark MLlib:分布式机器学习库
  • TensorFlow:深度学习框架
  • Apache Mahout:可扩展的机器学习库
  • R/Python:数据科学编程语言
  • Jupyter Notebook:交互式数据分析环境

Lambda架构

Lambda架构

Lambda架构是一种大数据处理架构,通过批处理和流处理两条路径来处理数据,旨在同时满足低延迟和高吞吐量的需求。

Lambda架构 = 批处理层 + 流处理层 + 服务层

架构组成

批处理层(Batch Layer)

  • 处理全量历史数据
  • 生成批视图(Batch Views)
  • 保证数据的准确性和完整性
  • 通常使用Hadoop、Spark等

流处理层(Speed Layer)

  • 处理实时数据流
  • 生成实时视图(Real-time Views)
  • 提供低延迟的数据处理
  • 通常使用Storm、Flink等

服务层(Serving Layer)

  • 合并批视图和实时视图
  • 响应用户查询请求
  • 提供统一的数据访问接口
  • 通常使用HBase、Cassandra等

Lambda架构优势

容错性:批处理层可以修正流处理层的错误可扩展性:批处理和流处理可以独立扩展灵活性:支持复杂的数据处理逻辑数据完整性:批处理保证数据的最终一致性

Lambda架构挑战

复杂性:需要维护两套处理逻辑一致性:批视图和实时视图的数据一致性运维成本:需要管理多个系统组件开发成本:需要实现和维护两套代码
Kappa架构

Kappa架构

Kappa架构是Lambda架构的简化版本,只使用流处理来处理所有数据,通过重新处理历史数据来实现批处理的效果。

Kappa架构 = 流处理层 + 服务层

所有数据都通过流处理引擎处理

核心思想

设计理念

将所有数据视为事件流,使用统一的流处理引擎来处理实时数据和历史数据,通过重新处理(Reprocessing)来实现数据的修正和更新。

架构特点

统一处理

  • 只有一套处理逻辑
  • 实时和批处理使用相同代码
  • 简化系统架构

重新处理

  • 支持历史数据重新计算
  • 可以修正处理逻辑错误
  • 保证数据的最终一致性

数据存储

  • 使用日志系统存储原始数据
  • 支持数据回放和重新处理
  • 保证数据的持久性

Kappa vs Lambda

  • 简化性:Kappa架构更简单,只需维护一套处理逻辑
  • 一致性:避免了批处理和流处理结果不一致的问题
  • 实时性:所有处理都是实时的,没有批处理的延迟
  • 适用场景:适合对实时性要求高、数据量相对较小的场景

技术选型

流处理引擎:Apache Kafka Streams、Apache Flink消息系统:Apache Kafka(支持数据回放)存储系统:支持流式读写的存储系统监控系统:实时监控处理状态和性能
章节导航 上一章:NoSQL数据库 返回目录

系统架构教程第13章:大数据架构
https://www.clxhxhhr.top/posts/3115/
作者
clxstart
发布于
2026-09-24
许可协议
CC BY-NC-SA 4.0
评论
0 条
还没有评论,先写一条吧。