资源管理器不会从备用状态转换为活动状态

Resource manager does not transit to active state from standby

一个 spark 作业 运行 超过 23 天,最终导致资源管理器崩溃。重启resource manager istance后(我们集群中有两个)都处于standby状态。

我们收到此错误:

ERROR org.apache.hadoop.yarn.server.resourcemanager.ResourceManager Failed to load/recover state org.apache.hadoop.yarn.exceptions.YarnException: Application with id application_1470300000724_40101 is already present! Cannot add a duplicate!

由于资源管理器不工作,我们无法从 yarn 中终止 'application_1470300000724_40101'。因此,我们在所有节点上从 Unix 级别杀死了所有实例,但仍然有效。我们试过重启所有节点,还是一样。

某处该作业的一个条目仍然存在并阻止资源管理器被选为活动。我们正在使用 cloudera 5.3.0,我可以看到这个问题已经在 cloudera 5.3.3 中得到解决。但目前我们需要一个解决方法来暂时解决问题。

要解决此问题,我们可以通过执行以下命令格式化 RMStateStore

yarn resourcemanager -format-state-store

但要小心,因为这将清除在执行此命令之前执行的所有应用程序历史记录。