【概述】
上一篇文章中提到了,nm进程重启后会根据记录的信息进行恢复或重新创建container进程,那么NM将container的哪些信息记录到了本地,重启过程中又是如何读取并恢复的,本文就来聊聊相关的原理。
【状态持久化】
首先,NM只有在使能了重启恢复container了之后,
即yarn.nodemanager.recovery.enabled配置为true,默认不开启。
启动运行container的过程中,才会将相关信息和状态持久化存储在本地。
持久化存储采用了leveldb的方式,即以key,value的形式记录相关信息。具体保存的信息如下面表格所示:
Key |
Value与存储时机 |
$AppPrefix/$AppID |
value为appID,提交用户,app的acl策略,日志聚合上下文,证书等整合的信息 创建Application时存储 |
$ContainerPrefix/$ContainerID/request |
value为container创建请求序列化后的字节数据 创建container时存储 |
$ContainerPrefix/ |