资源管理器(RM)在纱线中出现时会发生什么?
在运行作业的过程中,如果资源管理器出现故障,那么作业会发生什么?
作业是自动提交还是我们需要再次提交作业?
谢谢,
Venkat
答案 0 :(得分:3)
资源管理器(RM)高可用性在Apache链接中说明如下。
ResourceManager HA通过主动/备用架构实现。
在任何时候,其中一个RM处于活动状态,而其他备用节点正在等待接管,如果Active RM发生故障。
正在升级为活动状态的RM从状态存储加载RM内部状态,并继续从上一个活动停止的位置开始操作。
为先前提交给RM的每个托管应用程序生成一个新尝试。应用程序可以定期检查点,以避免丢失任何工作。
必须在两个主动/备用RM中都可以看到状态商店。目前,有两种用于持久性的RMStateStore实现 - FileSystemRMStateStore 和 ZKRMStateStore 。
ZKRMStateStore( ZooKeeper )隐式允许在任何时间点对单个RM进行写访问,因此是在HA群集中使用的推荐商店。
使用 ZKRMStateStore ,不需要单独的防护机制来解决潜在的裂脑情况,即多个RM可能会扮演主动角色。这种情况很好地用ZooKeeper处理。
ZooKeeper 不仅用于资源管理器故障转移。现在很多应用程序都在使用ZooKeeper。 Hadoop中其他故障转移用例的示例 - 名称节点故障转移也通过ZooKeeper发生。也请查看Name node fail over process。
在Hadoop 2.x之后和之前的Hadoop 2.6.x :
当资源管理器死亡并重新启动,或者在HA集群的情况下故障转移到另一个ResourceManager时,新激活的ResourceManager指示运行的ApplicationMaster中止。这会耗尽应用程序尝试。
此外,如果ResourceManager关闭一段时间且ApplicationMaster无法连接,它将超时并中止。这也耗尽了应用程序的尝试。
当新的ResourceManager变为活动状态时,它可以恢复未尝试但未超过其最大尝试次数的应用程序。
有关详细信息,请查看此article
来自Hadoop 2.6.0:
资源管理器利用从所有节点管理器发送的容器状态来恢复其运行状态。当节点管理器与重新启动的资源管理器重新同步时,它不会终止容器。
它会继续管理容器,并在重新注册时将容器状态发送到资源管理器。
资源管理器通过吸收这些容器的信息来重建容器实例和关联应用程序的调度状态
答案 1 :(得分:0)
管理员将创建一个新的资源管理器。将从所有应用程序管理器获取最新信息,并更新新资源管理器将使用的持久存储。这纯粹是一个管理任务
答案 2 :(得分:0)