Spark Master HA 主从切换过程不会影响到集群已有作业的运行, 为什么?

本文涉及的产品
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 3个月
实时数仓Hologres,5000CU*H 100GB 3个月
简介: Spark Master 的高可用性(HA)机制确保主节点故障时,备用主节点能无缝接管集群管理,保障稳定运行。关键在于:1. **Driver 和 Executor 独立**:任务执行不依赖 Master。2. **应用状态保持**:备用 Master 通过 ZooKeeper 恢复集群状态。3. **ZooKeeper 协调**:快速选举新 Master 并同步状态。4. **容错机制**:任务可在其他 Executor 上重新调度。这些特性保证了集群在 Master 故障时仍能正常运行。

Spark Master 的高可用性(HA)机制确保了在主节点(Master)发生故障时,可以从备用主节点(Standby Master)中选择一个接管集群的管理,从而保证集群的稳定运行。这一过程不会影响到集群中已有作业的运行,主要原因如下:

  1. Driver 和 Executor 的独立性
  • 在 Spark 中,每个应用程序都有一个 Driver 程序和多个 Executor。Driver 负责任务的调度和管理,而 Executor 负责执行具体的任务。
  • Driver 和 Executor 与 Master 的通信主要是为了获取资源和任务分配信息。一旦任务开始执行,Executor 会直接与 Driver 通信,而不是通过 Master。
  1. Application 的状态保持
  • 当 Master 发生故障时,备用 Master 会接管集群。备用 Master 会从 ZooKeeper 或其他元数据存储中恢复集群的状态,包括正在运行的应用程序的信息。
  • 这些状态信息包括应用程序的配置、任务的分配情况等,确保备用 Master 可以无缝接管集群的管理。
  1. ZooKeeper 的协调作用
  • 在启用 HA 模式时,Spark 使用 ZooKeeper 来进行主从节点的选举和状态同步。
  • ZooKeeper 作为一个高可用的分布式协调服务,可以确保在 Master 故障时快速选举出新的 Master,并同步集群的状态信息。
  1. 任务的容错机制
  • Spark 本身具有强大的容错机制。如果某个 Executor 失败,Driver 可以重新调度任务到其他可用的 Executor 上。
  • 这种容错机制不仅适用于 Executor 的故障,也适用于 Master 的故障。备用 Master 接管后,可以继续管理和调度现有的任务。

示例说明

假设有一个 Spark 应用程序正在运行,其架构如下:

  • Master:当前的主节点
  • Standby Master:备用主节点
  • Driver:应用程序的驱动程序
  • Executor:执行任务的节点

当 Master 发生故障时,ZooKeeper 会检测到这一情况并选举 Standby Master 为新的 Master。新的 Master 会从 ZooKeeper 中恢复集群的状态,包括正在运行的应用程序的信息。Driver 和 Executor 会继续与新的 Master 通信,确保任务的正常执行。

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
目录
打赏
0
5
7
1
45
分享
相关文章
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
66 0
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
56 0
Spark作业调度中stage的划分
Spark在接收到提交的作业后,会进行RDD依赖分析并划分成多个stage,以stage为单位生成taskset并提交调度。
Spark作业调度中stage的划分
Spark作业调度
Spark在任务提交时,主要存在于Driver和Executor的两个节点. (1)Driver的作用: 用于将所有要处理的RDD的操作转化为DAG,并且根据RDD DAG将JBO分割为多个Stage,最后生成相应的task,分发到各个Executor执行.
789 0
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
129 79
ClickHouse与大数据生态集成:Spark & Flink 实战
【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
337 2
ClickHouse与大数据生态集成:Spark & Flink 实战
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
113 0
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
85 0