暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【转载】YARN设计的架构提供了良好的容错机制

原创 GaussDB数据库 2021-11-16
1004

原文链接:https://bbs.huaweicloud.com/forum/thread-166307-1-1.html

YARN容错机制

YARN设计的架构提供了良好的容错机制,对ResourceManager运行失败、NodeManager运行失败等问题,都提供了不同的方案。

ResourceManager高可用性方案

Yarn中的ResourceManager负责整个集群的资源管理和任务调度,Yarn高可用性方案通过引入冗余的ResourceManager节点的方式,解决了ResourceManager 单点故障问题。

ResourceManager的高可用性方案是通过设置一组Active/Standby的ResourceManager节点来实现的。与HDFS的高可用性方案类似,任何时间点上都只能有一个ResourceManager处于Active状态。当Active状态的ResourceManager发生故障时,可通过自动或手动的方式触发故障转移,进行Active/Standby状态切换。

在未开启自动故障转移时,Yarn集群启动后,管理员需要在命令行中使用yarn rmadmin命令手动将其中一个ResourceManager切换为Active状态。当需要执行计划性维护或故障发生时,则需要先手动将Active状态的ResourceManager切换为Standby状态,再将另一个ResourceManager切换为Active状态。

开启自动故障转移后,ResourceManager会通过内置的基于ZooKeeper实现的ActiveStandbyElector来决定哪一个ResouceManager应该成为Active节点。当Active状态的ResourceManager发生故障时,另一个ResourceManager将自动被选举为Active状态以接替故障节点。

Yarn AppMaster容错机制

当集群的ResourceManager以HA方式部署时,客户端使用的“yarn-site.xml”需要配置所有ResourceManager地址。客户端(包括ApplicationMaster和NodeManager)会以轮询的方式寻找Active状态的ResourceManager。如果当前Active状态的ResourceManager无法连接,那么会继续使用轮询的方式找到新的ResourceManager。

在YARN中,ApplicationMaster(AM)与其他Container类似也运行在NodeManager上(忽略未管理的AM)。AM可能会由于多种原因崩溃、退出或关闭。如果AM停止运行,ResourceManager(RM)会关闭ApplicationAttempt中管理的所有Container,包括当前任务在NodeManager(NM)上正在运行的所有Container。RM会在另一计算节点上启动新的ApplicationAttempt。

不同类型的应用希望以多种方式处理AM重新启动的事件。MapReduce类应用目标是不丢失任务状态,但也能允许一部分的状态损失。但是对于长周期的服务而言,用户并不希望仅仅由于AM的故障而导致整个服务停止运行。

YARN支持在新的ApplicationAttempt启动时,保留之前Container的状态,因此运行中的作业可以继续无故障的运行。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论