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

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
智能开放搜索 OpenSearch行业算法版,1GB 20LCU 1个月
实时计算 Flink 版,5000CU*H 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实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
5天前
|
人工智能 分布式计算 调度
打破资源边界、告别资源浪费:ACK One 多集群Spark和AI作业调度
ACK One多集群Spark作业调度,可以帮助您在不影响集群中正在运行的在线业务的前提下,打破资源边界,根据各集群实际剩余资源来进行调度,最大化您多集群中闲置资源的利用率。
|
5月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(一)
64 0
|
5月前
|
SQL 分布式计算 大数据
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
大数据-100 Spark 集群 Spark Streaming DStream转换 黑名单过滤的三种实现方式(二)
54 0
|
5月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
60 0
|
分布式计算 大数据 调度
Spark 集群搭建_高可用配置|学习笔记
快速学习 Spark 集群搭建_高可用配置
Spark 集群搭建_高可用配置|学习笔记
|
分布式计算 Hadoop Linux
Spark集群搭建记录 | 云计算[CentOS7] | Spark配置
写在前面 step1 Spark下载 step2 修改环境变量 ~/.bashrc /etc/profile step3 配置Master-文件修改 slaves spark-env.sh step4 配置slave节点 step5 集群启动 step6 web浏览器状态查看 step7 配置开机启动(可选)
295 0
Spark集群搭建记录 | 云计算[CentOS7] | Spark配置
|
分布式计算 Hadoop Java
|
分布式计算 Spark Hadoop
|
1天前
|
存储 分布式计算 Hadoop
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
108 79
|
4月前
|
存储 分布式计算 Hadoop
数据湖技术:Hadoop与Spark在大数据处理中的协同作用
【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
260 2