YARN 应急预案
YARN 应急预案
RM向ZK中写数据异常
现象描述
ResourceManager向ZooKeeper集群写入数据异常导致YARN服务不可用,ResourceManager服务日志异常信息如下:
[697242] - WARN [main-SendThread(ip:2181):ClientCnxn$SendThread@1102] -
Session 0x368a16867d20001 for server ip:2181, unexpected error, closing socket connection
and attempting reconnect java.io.IOException: Packet len7945008 is out of range!
at org.apache.zookeeper.ClientCnxnSocket.readLength(ClientCnxnSocket.java:112)
at org.apache.zookeeper.ClientCnxnSocketNIO.doIO(ClientCnxnSocketNIO.java:79)
at org.apache.zookeeper.ClientCnxnSocketNIO.doTransport(ClientCnxnSocketNIO.java:366)
at org.apache.zookeeper.ClientCnxn$SendThread.run(ClientCnxn.java:1081)
可能原因
ResourceManager向ZooKeeper集群写入数据时出现字节数超限异常。
定位思路
登录主ResourceManager实例的主机,查看ResourceManager业务日志。
处理步骤
登录主ResourceManager实例的主机,查看ResourceManager业务日志,看是否有“Packet len7945008 is out of range”异常信息。
修改ZooKeeper服务zookeeper-env.sh配置,设置jute.maxbuffer=10240000,依次重启ZK服务。
修改ResourceManager服务yarn-env.sh配置,设置jute.maxbuffer=10240000,依次重启RM服务(备→主),查看服务是否恢复。
是,操作结束。
否,执行步骤4。
若仍然无法恢复,则修改ResourceManager服务的yarn.resourcemanager.zk-state-store.parent-path配置为新地址,依次重启RM服务(备→主)。
YARN队列任务大量积压
现象描述
某用户队列大量积压。
可能原因
队列资源不够。
ZooKeeper服务异常。
ResourceManager服务异常。
定位思路
检查用户队列资源是否有空闲。
检查ZooKeeper服务是否正常。
检查ResourceManager服务是否正常。
处理步骤
登录YARN监控系统,查看用户队列资源是否有空闲。
是,执行步骤2。
否,给该用户队列扩容。若故障恢复,操作结束。若仍然无法恢复,执行步骤2。
检查ZooKeeper服务是否有报警。
是,参考报警及ZooKeeper服务异常日志进行操作。
否,执行步骤3。
重启状态异常的ResourceManager实例,查看故障是否恢复。
是,操作结束。
否,执行步骤4。
kill default队列的用户任务,查看故障是否恢复。
是,操作结束。
否,执行步骤5。
调整用户队列sla和default的并发数为200,查看故障是否恢复。
是,操作结束。
否,执行步骤6。
调整用户队列sla和default的权重比为10:3,查看故障是否恢复。
是,操作结束。
否,执行步骤7。
备份ResourceManager日志并联系开发人员进行分析。
磁盘被异常任务写满
现象/事件:
因磁盘写满导致NodeManager退服
影响范围:
主机磁盘写满,NM服务不可用
故障恢复:
kill任务恢复NodeManager服务
磁盘长时间IO带宽被打满
现象/事件
调度到该磁盘的作业运行时间会明显变长,也会引起各类超时现象
影响范围
任务超时
操作步骤
退服NM节点,待相关指标恢复正常后,再重启
NM节点因磁盘空间不足处于Unhealthy状态
现象/事件
YARN WEBUI上出现Unhealthy Nodes计数或者收到相关的Unhealthy Metrics报警
影响范围:
出现该异常的NM无法继续运行和调度作业,若大量的NM进入unhealthy状态(5%),会造成系统计算资源不足;同时任务在不同节点上反复重试,也会造成任务延迟。
故障恢复
1. 确认当前节点上除NM进程外,无其他的任务进程
2. 停掉NM服务
3. 手动清理 YARN_LOCAL_DIR 或者 YARN_LOG_DIR 目录
4. 恢复NM服务
以上内容对您是否有帮助?