Spark 的各种 HA:master/worker/executor 的 HA?

Johngo学长 Spark 38
  • Master异常
    spark可以在集群运行时启动一个或多个standby Master,当 Master 出现异常时,会根据规则启动某个standby master接管,在standlone模式下有如下几种配置
    • ZOOKEEPER
      集群数据持久化到zk中,当master出现异常时,zk通过选举机制选出新的master,新的master接管是需要 从 zk 获取持久化信息
    • FILESYSTEM
      集群元数据信息持久化到本地文件系统, 当master出现异常时,只需要在该机器上重新启动master,启动后新的master获取持久化信息并根据这些信息恢复集群状态
    • CUSTOM
      自定义恢复方式,对 standloneRecoveryModeFactory 抽象类 进行实现并把该类配置到系统中,当master 出现异常时,会根据用户自定义行为恢复集群
    • None
      不持久化集群的元数据, 当 master出现异常时, 新启动的Master 不进行恢复集群状态,而是直接接管集群
  • Worker异常
    Worker以定时发送心跳给 Master, 让 Master 知道 Worker 的实时状态,当worker出现超时时,Master 调用 timeOutDeadWorker 方法进行处理,在处理时根据 Worker 运行的是 Executor 和 Driver 分别进行处理
    • 如果是Executor, Master先把该 Worker 上运行的Executor 发送信息ExecutorUpdate给对应的Driver, 告知Executor已经丢失,同时把这些Executor从其应用程序列表删除, 另外, 相关Executor的异常也需要 处理
    • 如果是Driver, 则判断是否设置重新启动,如果需要,则调用Master.shedule方法进行调度,分配合适节点重 启Driver, 如果不需要重启, 则删除该应用程序
  • Executor异常
    • Executor发生异常时由ExecutorRunner捕获该异常并发送ExecutorStateChanged信息给Worker
    • Worker接收到消息时,在Worker的handleExecutorStateChanged方法中,根据Executor状态进行信息更新,同时把Executor状态发送给 Master
    • Master在接受Executor状态变化消息之后,如果发现其是异常退出,会尝试可用的Worker节点去启动 Executor

回复

我来回复
  • 暂无回复内容

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部