当name节点在yarn中失败时,作业状态是什么?

3ks5zfa0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(438)

当一个作业在集群中运行时,如果namenode突然出现故障,那么该作业的状态是什么(失败还是已终止)?
如果失败意味着,谁在更新作业状态?
这在内部是如何工作的?

cbjzeqam

cbjzeqam1#

因为我还没有测试出来,所以我不能完全确定以下几点。但启动一个虚拟机并亲自测试并没有什么坏处。
namenode不处理作业的状态,这就是yarn所做的。如果namenode不是ha并且它死了,您将失去与hdfs的连接(甚至可能丢失数据)。默认情况下,yarn会尝试重新联系hdfs几次,最终超时并失败。

k5hmc34c

k5hmc34c2#

备用namenode将成为具有故障转移过程的活动namenode。看看hadoop namenode故障转移过程是如何工作的?
Yarn结构围绕 Resource Manager, Node Manager and Applications Master . 作业将继续进行,不会对namenode失败造成任何影响。如果上述三个进程中的任何一个失败,将根据各自的进程恢复来执行作业恢复。
资源管理器恢复:
启用resourcemanger restart后,升级到活动状态(当前待机)的rm将加载rm内部状态,并根据rm restart功能尽可能从上一个活动状态停止的位置继续运行。将为以前提交给rm的每个托管应用程序生成新的尝试。
应用程序主恢复:
对于运行在yarn(aka mr2)上的mapreduce,mr应用程序管理员扮演着每个作业作业跟踪器的角色。mram故障恢复由属性mapreduce.am.max-attempts控制。可以为每个作业设置此属性。如果它的值大于1,那么当applicationmaster死亡时,将为新的应用程序尝试旋转一个新的应用程序,直到最大尝试次数。当新的应用程序尝试启动时,正在运行的任务将中止并重新运行,但已完成的任务不会重新运行。
节点管理器恢复:
在恢复期间,nm从状态存储加载应用程序的状态。每个应用程序的状态指示应用程序是否已完成。请注意,对于已完成的应用程序,将不再启动容器,但它可能仍在进行日志聚合。在恢复每个应用程序时,将创建一个新的应用程序对象,并触发初始化事件以重新初始化nm中应用程序的簿记。
在所有这些阶段, Job History 起着关键作用。已成功完成的Map和减少任务状态将从作业历史记录服务器还原。此状态有助于停止重新启动已成功完成的map/reduce任务。
看看资源管理器ha文章、节点管理器重启文章和Yarnha文章

相关问题