Yarn NodeManager restart特性

一、介绍

默认Yarn NodeManager重启后会断开所有当前正在运行的container的状态,这意味着重启后需要重新启动container进程,该特性的作用就是把NM的状态临时保存到本地,重启后从之前的状态恢复运行。


二、配置

配置以下三个参数到conf/yarn-site.xml中

1、yarn.nodemanager.recovery.enabled

默认为false,设置为true启用特性


2、yarn.nodemanager.recovery.dir

默认为$hadoop.tmp.dir/yarn-nm-recovery,NM保存container状态的本地目录


3、yarn.nodemanager.address

默认${yarn.nodemanager.hostname}:0,即随机使用临时端口,官方解释是"The address of the container manager in the NM"。NodeManager不能对RPC server使用临时端口,因为NM在重启后会更换端口,会打断重启前的container与NodeManager的连接,设置后可以固定使用同一个的端口。


三、总结

为NodeManager配置辅助服务,yarn依赖于辅助服务来支持container恢复,通常避免使用临时的端口,这样的话,重启前的container不会因为端口变化而失去container的连接。

MR的ShuffleHandler就是辅助服务的一个例子,ShuffleHandler涉及到上面的条件,所以用户或者管理员不需要对MR做任何事来满足NM restart功能:

a、mapreduce.shuffle.port参数控制了NodeManager节点上的哪个端口与ShuffleHandler进行绑定

b、ShuffleHandler已经支持在NodeManager重启后恢复之前的运行状态

你可能感兴趣的:(hadoop)