Content
9 Lessons • 0 Quizzes • 0 Challenges
简介
- 1
欢迎来到本课程
- 2
什么是分布式系统?
- 3
从零开始的一个示例
- 4
分布式系统的原理
- 5
快速测验 #1:分布式系统的概念与意义
分布式系统为我们带来了哪些优势?
- 1
容错性
- 2
可靠性
- 3
处理硬件和软件故障
- 4
快速测验 #2:容错性与可靠性
- 5
可用性
- 6
实现可用性
- 7
快速测验 #3:分布式系统中的可用性
- 8
可扩展性
- 9
分布式系统中的负载均衡
- 10
负载均衡算法
- 11
衡量负载和性能
- 12
快速测验 #4:可扩展性与负载均衡器
- 13
可维护性
- 14
快速测验 #5:可维护性
分布式系统中的数据
- 1
数据的崛起
- 2
复制
- 3
复制技术
- 4
复制类型与节点故障
- 5
快速测验 #6:复制
- 6
数据分区
- 7
分区技术
- 8
一致性哈希
- 9
快速测验 #7:分区
- 10
一致性
- 11
可调一致性
- 12
快速测验 #8:一致性
- 13
缓存
- 14
缓存中的过期与驱逐策略
- 15
缓存写入策略(concept)
- 16
快速测验 #9:缓存
节点之间的通信
- 1
通过数据库进行通信
- 2
服务中的通信
- 3
通过异步消息进行通信
- 4
快速测验:节点之间的通信
大规模数据处理
- 1
批处理
- 2
MapReduce 在批处理中的应用
- 3
流处理
- 4
快速测验:大规模数据处理
分布式系统架构模式
- 1
复制的负载均衡服务
- 2
分片服务
- 3
Lambda 架构
- 4
命令查询职责分离(CQRS)
- 5
快速测验:分布式系统架构模式
案例研究 1:Apache Spark
- 1
大数据与Apache Spark
- 2
Apache Spark 的架构 Apache Spark 是一个分布式计算框架,旨在高效处理大规模数据。其核心架构基于弹性分布式数据集(RDD,Resilient Distributed Dataset)模型,并支持多种计算模式,包括批处理、流处理、机器学习和图计算。 Spark 架构主要由以下几个关键组件构成: 1. **Driver Program(驱动程序)** 驱动程序是用户编写的 Spark 应用的入口点,负责将用户代码转换为任务(Tasks),并协调整个应用程序的执行。它包含以下功能: - 创建 SparkContext(用于与集群通信) - 将应用程序逻辑划分为阶段(Stages) - 调度任务到工作节点 - 监控执行状态并返回结果 2. **Cluster Manager(集群管理器)** 负责资源分配和调度,管理集群中的计算资源。Spark 支持多种集群管理器: - Standalone:Spark 自带的简单集群管理器 - Apache Mesos:通用资源管理框架 - YARN(Yet Another Resource Negotiator):Hadoop 生态中的资源管理器 - Kubernetes:容器化部署环境下的资源管理平台 3. **Worker Node(工作节点)** 工作节点是集群中的计算节点,运行在物理或虚拟机上。每个工作节点上启动一个 Executor 进程,负责执行具体的任务。 4. **Executor(执行器)** 每个工作节点上的执行器进程负责执行分配给它的任务。它具备以下功能: - 在内存中存储数据(如 RDD 分区) - 执行计算任务 - 向 Driver 报告状态和结果 - 通过本地缓存提高性能 5. **Spark Context(Spark 上下文)** 是 Spark 应用程序与集群交互的核心接口。它负责连接到集群管理器,获取资源,并创建 RDD、DataFrame 和 Dataset 等数据结构。 6. **RDD(弹性分布式数据集)** RDD 是 Spark 的基本数据抽象,代表一个不可变的、分区的数据集合。具有容错性,可通过血统(Lineage)信息重新计算丢失的数据。 7. **DAG Scheduler(有向无环图调度器)** 将用户提交的作业分解为多个阶段(Stages),根据依赖关系构建 DAG 图,然后将阶段划分成任务组(Task Sets)发送给 Executor 执行。 8. **Task Scheduler(任务调度器)** 负责将任务分发到各个 Executor 上执行,确保任务在合适的节点上运行。 9. **Storage Module(存储模块)** 管理数据的缓存和持久化,支持将 RDD 或 DataFrame 缓存在内存、磁盘或两者中,以提升后续访问效率。 10. **SQL and Streaming Engine(SQL 与流处理引擎)** Spark SQL 提供对结构化数据的查询能力;Structured Streaming 提供基于微批处理的流式数据处理机制。 整体架构特点: - **内存计算**:数据优先存储在内存中,显著提升性能。 - **容错性**:通过 RDD 的血统机制实现自动恢复。 - **统一编程模型**:支持多种计算范式(批处理、流处理、机器学习、图计算)共用同一套 API。 - **可扩展性**:可在数千个节点的集群上运行。 该架构使得 Spark 成为大数据处理领域广泛采用的主流框架。
案例研究 2:Apache Druid
- 1
OLTP 和 OLAP 数据库
- 2
Apache Druid 的高层架构
结论
- 1
总结!
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Course Author:Anonymous User