hadoopyarn在子vm中启动yarnchild示例来执行实际任务。这些任务通过脐带接口与其applicationmaster(am)通信。
我的问题是,如果am死了,而资源管理器(rm)无法启动它(比如,由于am中的一些代码缺陷),会发生什么?在这种情况下,子任务将(a)注意到由于心跳而没有am,然后(b)转到rm以获取新的am位置,在这种情况下,它们将不会获取新的am位置。那么,这些孤立的任务会发生什么呢?我有一个场景,我想终止他们。这是默认行为吗?它们的节点管理器(nm)是否终止它们?
2条答案
按热度按时间u3r8eeie1#
来自hadoop-权威指南,第6章,失败,Yarn中的失败
崩溃之后,一个新的资源管理器示例(由管理员)启动,并从保存的状态恢复。状态由系统中的节点管理器以及正在运行的应用程序组成。这里的任务不是资源管理器状态的一部分,因为它们是由应用程序管理的。
另外,据说资源管理器的设计是为了能够从崩溃中恢复。
vddsk6oq2#
与该特定应用程序主机相关的所有子任务都将处于停止状态。hadoop管理员应该重新启动应用程序主程序,或者终止它。nodemanager不会终止失败的应用程序主机。
如果您想终止一个应用程序,那么您可以使用
yarn application -kill application_id
命令终止应用程序。它将杀死应用程序下所有正在运行和排队的作业。如果你想在Yarn中杀死一个任务,那么你可以使用
hadoop job -kill-task <task-id>
干掉一个特定的任务