NodeManager节点自身健康状态检测机制

每个NodeManager节点通过NodeHealthCheckerService进行健康状态检测,并通过心跳机制报告给ResourceManager。检测包括健康状况检测脚本(定期执行用户指定的脚本,如内存使用率监测)和本地目录健康检测(检查磁盘存储和日志目录的可用性)。当检测到不健康状态时,ResourceManager会将节点标记为UNHEALTHY,停止分配任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

每个 NodeManager 节点内置提供了检测自身健康状态的机制(详情参见NodeHealthCheckerService);通过这种机制,NodeManager 会将诊断出来的监控状态通过心跳机制汇报给 ResourceManager,然后ResourceManager 端会通过RMNodeEventType.STATUS_UPDATE 更新 NodeManager 的状态;如果此时的 NodeManager 节点不健康,那么ResourceManager 将会把 NodeManager 状态变为 NodeState.UNHEALTHY 。关于 NodeManager的状态之间的转移请参见NodeManager生命周期介绍。这种内置的健康检测机制主要包括以下两种:

  • 健康状况检测脚本
  • 本地目录健康检测

健康状况检测脚本

每个 NodeManager 上都有一个名为 NodeHealthScriptRunner 的类,其会启动一个名为 NodeHealthMonitor-Timer 的 Timer 定期执行(默认每个十分钟实行一次,由参 yarn.nodemanager.health-checker.interval-ms 指定)用户编写的用于检测 NodeManager 健康状态的脚本,这个脚本是通过参数 yarn.nodemanager.health-checker.script.path 指定的。一旦发现以下几种结果则认为节点处于不健康状态:

  • 脚本输出包含以”ERROR”开头的字符串,不顾是一个还是多个都算
  • 执行脚本的时候出现超时
  • 执行脚本出现异常
  • 如果执行脚本出现了 ExitCodeException异常,并不认为NodeManager节点健康出现异常,因为脚本可能编写错误。NodeHeal

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值