@changedi
2018-12-10T13:09:07.000000Z
字数 1162
阅读 3110
YARN
原文:http://hadoop.apache.org/docs/r2.6.4/hadoop-yarn/hadoop-yarn-site/NodeManagerRestart.html
NodeManager的重启,是一个NodeManager的功能特性,用来支持NodeManager重启且不丢失运行中的活动的container的能力。从一个高层视角来看,NM在处理container管理请求时,存储了每一个有必要的状态到一个本地的state-store状态存储里。当NM重启时,它通过先为不同的子系统加载状态,然后让这些子系统利用这些加载的状态来进行recovery。
1,开启NM的重启,先将conf/yarn-site.xml的如下属性进行设置为true:
Property | Value |
---|---|
yarn.nodemanager.recovery.enabled | true, (默认是false) |
2,为NodeManager存储器状态配置一个本地文件系统目录路径
|Property| Description|
|yarn.nodemanager.recovery.dir| 用以存储状态的本地文件系统路径。默认是$hadoop.tmp.dir/yarn-nm-recovery.|
3,配置NodeManager的RPC地址。
Property | Description |
---|---|
yarn.nodemanager.address | Ephemeral端口(默认port 0)不能用yarn.nodemanager.address的设置来作为NodeManager的rpc服务端口,因为它会导致NM在重启前后使用不同的端口。这会导致之前运行的client无法通信。显式的设置一个带端口号的地址参数(比如0.0.0.0:45454)是开启NM重启功能的前置条件。 |
4, 附加服务
一个YARN集群中的NodeManager可以配置运行附加服务。对于一次完全的NM重启,YARN依赖于这些附加服务也支持恢复。这通常包括(1)避免使用ephemeral端口,这会导致以前连接的client在重启后端口混乱无法通信,(2)附加服务要支持通过重新加载之前状态做到恢复的能力。
一个简单的例子就是用于MapReduce(MR)的附加服务“ShuffleHandler”。ShuffleHandler满足上面两个要求:(1)配置属性mapreduce.shuffle.port控制ShuffleHandler在NodeManager主机上绑定到什么端口。(2)ShuffleHandler已经支持在NM重启后通过加载之前状态来恢复。所以用户和管理员不需要做任何事情来支持NM重启。