做视频网站付费版,摇一摇抽签用什么网站做,平面图制作用什么软件,做中介网站需要多少钱YARN节点故障的容错方案 1. RM高可用1.1 选主和HA切换逻辑 2. NM高可用2.1 感知NM节点异常2.2 异常NM上的任务处理 4. 疑问和思考4,1 RM感知NM异常需要10min#xff0c;对于app来说是否太长了#xff1f; 5. 参考文档 本文主要探讨yarn集群的高可用容错方案和容错能力的探讨。… YARN节点故障的容错方案 1. RM高可用1.1 选主和HA切换逻辑 2. NM高可用2.1 感知NM节点异常2.2 异常NM上的任务处理 4. 疑问和思考4,1 RM感知NM异常需要10min对于app来说是否太长了 5. 参考文档 本文主要探讨yarn集群的高可用容错方案和容错能力的探讨。涉及RM和NM相关组件在出现单机故障时相关的容错方案。
更多关于分布式系统的架构思考请参考文档关于常见分布式组件高可用设计原理的理解和思考 1. RM高可用
1.1 选主和HA切换逻辑
RMResourceManager的HA机制主要依靠zk完成。整体的逻辑跟HDFS的NN逻辑整体上一致也略有差别可以参考 HDFS节点故障的容错方案
相同点 1 RM使用zk的临时锁节点ActiveStandbyElectorLock进行选主 2其他节点的watch机制跟hdfs的逻辑也一致
不同点 1 RM没有另外涉及zkfc辅助选主而是RM自己完成了相关的逻辑 2YARN集群没有涉及fencing逻辑。
2. NM高可用
NM是运行在单个节点上的代理 主要职责有
管理Hadoop集群中单个计算节点功能包括与ResourceManager保持通信管理Container的生命周期、监控每个Container的资源使用(内存、CPU等情况、追踪节点健康状况、管理日志和不同应用程序用到的附属服务等向ResourceManager汇报各个Container运行状态和节点健康状况并领取有关Container的命令比如清理Container。
2.1 感知NM节点异常
NM启动后通过RPC函数ResourceTracker#registerNodeManager向RM注册之后将被加入到NMLivenessMonitor中进行监控。它必须周期性通过RPC函数ResourceTracker#nodeHeartBeat向RM汇报心跳以表明自己还活着如果一段时间内(默认是10min内为汇报心跳则RM宣布它已经死亡所以正在运行在它上面的Container将被回收。
当RM判断NM宕机后需要
RM剔除对应的NM并将异常NM上的container标记死亡后续container不会被分配到对应的NM通知AM告知异常NM上的container已经死亡由AM决定下一步的任务行为。
2.2 异常NM上的任务处理
由于在yarn集群中任务的管理是通过AM进行管理的因此RM感知到NM异常后标记对应的containier死亡并需要通知对应的AM。NM或者RM并不负责运行在上面的app运行状态而是由AM来决定下一步动作AM在跟RM申请一个NM执行container还是标记app失败等。
4. 疑问和思考
4,1 RM感知NM异常需要10min对于app来说是否太长了
视情况而定。由于RM感知NM异常需要10min的时间然后才会通知AM这个时间相对于大多数任务而言还是比较长的。如果任务对数据的实时性要求很高建议AM创建container后container主动给AM汇报心跳来决定业务行为能够感觉相关的业务需求来进行开发。通常flink、spark任务都是过该思路进行开发的。
5. 参考文档
一文搞定Journal Node原理