【发布时间】:2016-01-31 20:36:01
【问题描述】:
当 Yarn 中的资源管理器 (RM) 出现故障时会发生什么?
在运行作业的过程中,如果资源管理器出现故障,那么作业会发生什么情况?
作业是自动提交还是我们需要再次提交作业?
谢谢,
文卡特
【问题讨论】:
标签: hadoop hadoop-yarn hadoop2 high-availability
当 Yarn 中的资源管理器 (RM) 出现故障时会发生什么?
在运行作业的过程中,如果资源管理器出现故障,那么作业会发生什么情况?
作业是自动提交还是我们需要再次提交作业?
谢谢,
文卡特
【问题讨论】:
标签: hadoop hadoop-yarn hadoop2 high-availability
资源管理器 (RM) 高可用性在Apache 链接中解释如下。
ResourceManager HA 是通过 Active/Standby 架构实现的。
在任何时间点,其中一个 RM 处于活动状态,如果活动 RM 失败,则其他备用节点正在等待接管。
被提升为活动状态的 RM 从 State-store 加载 RM 内部状态,并从前一个活动停止的地方继续运行。
对于之前提交给 RM 的每个托管应用程序都会产生新的尝试。应用程序可以定期检查点以避免丢失任何工作。
State-store 必须对 Active/Standby RM 都可见。目前,有两种用于持久化的 RMStateStore 实现 - FileSystemRMStateStore 和 ZKRMStateStore。
ZKRMStateStore (ZooKeeper) 隐式允许在任何时间点对单个 RM 进行写访问,因此是在 HA 集群中使用的推荐存储。
使用 ZKRMStateStore,无需单独的防护机制来解决多个 RM 可能承担 Active 角色的潜在脑裂情况。ZooKeeper 可以很好地处理这种情况。
ZooKeeper 不仅用于资源管理器故障转移。现在很多应用程序都使用 ZooKeeper。 Hadoop 中其他故障转移用例的示例 - 名称节点故障转移也通过 ZooKeeper 发生。也可以看看Name node fail over process。
在 Hadoop 2.x 之后和 Hadoop 2.6.x 之前:
当 ResourceManager 死掉并重新启动,或者在 HA 集群的情况下故障转移到另一个 ResourceManager 时,新活动的 ResourceManager 会指示正在运行的 ApplicationMasters 中止。这会耗尽应用程序尝试。
另外,如果 ResourceManager 关闭了一段时间,ApplicationMaster 无法连接,它将超时并中止。这也消耗了一次应用程序尝试。
当新的 ResourceManager 变为活动状态时,它可以恢复尝试失败且未超过其最大尝试次数的应用程序。
查看article 了解更多详情
来自Hadoop 2.6.0:
资源管理器通过利用所有节点管理器发送的容器状态来恢复其运行状态。节点管理器在与重新启动的资源管理器重新同步时不会杀死容器。
它继续管理容器并在重新注册时将容器状态发送到资源管理器。
资源管理器通过吸收容器的信息来重构容器实例和相关应用的调度状态
【讨论】:
管理员将创建一个新的资源管理器。将从所有应用程序管理器获取最新信息并更新新资源管理器将使用的持久存储。这纯粹是一项管理任务
【讨论】:
【讨论】: