spark 容错HA(五)

spark 容错HA

1. Executor 异常

spark在各种运行模式中的集群管理器会为任务分配运行资源,在运行资源中启动Executor,由Executor是负责执行任务的,最终会把任务运行状态发送给Driver。
在这里插入图片描述
首先看Executor启动过程:
1)Master给APP分配资源
2)在Worker中启动ExecutorRunner
3)ExecutorRunner会启动一个线程向Driver发送注册Executor消息
4)注册成功,则启动Executor。

当Executor出现异常时:
1)Worker接收到ExecutorStateChanged消息,在Worker中根据Executor状态进行信息更新,同时把Executor状态信息发送给Master。
2)Master接收到Executor状态变化消息后,如果发现Executor出现异常退出,则尝试获取可用的Worker节点并启动Executor,这个Worker很可能不能之前运行失败的Worker节点。系统会进行10次该尝试,如果超过10次,则标记为应用运行失败并移除该应用。次数限定 为了避免提交的应用程序存在BUG,而反复提交,挤占资源。

2. Worker异常

Spark standalone模式是采用Master/Slave的结构,其中slave是由Worker来担任,在运行时会发送心跳给Master,让Master知道Worker的实时状态,另一方面Master也会检测Worker是否会超时,因为在集群运行过程中。
在这里插入图片描述
1)Master是如何感知到Worker超时的,在Master接收Worker心跳的同时,在其启动方式中启动检测Worker超时的线程 。也就是说检测线程和心跳线程并不是同一个。
2)当Worker出现超时时,Master调用timeOutWorkers方法进行处理,在处理时根据Worker运行的是Executor和Driver分别进行处理。
a) 如果是Executor,Master先先把Worker上Executor异常的信息发送给Driver,告知Executor已经丢失,同时把这些Executor从其应用程序列表中删除。并按照Executor异常处理。
b) 如果是Driver,则判断是否设置重启,如果设置,则重启,否则删除该应用程序。

3. Master异常

以standalone模式部署时,Master结束,基本就代表集群瘫痪,但是在多节点的集群,一般会选择HA模式,启动2个或者多个Master进程,一个是主Master,其他为Standby Master,当Master出现异常时,StandbyMaster将会选主,确定一个接管的Master,这部分功能是由ZOOKEEPER来完成的,HA模式写spark依赖zk,通过zk来进行选主。

在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值