hadoop

董西城《深入解析YARN》- 第7章 NodeManager剖析

2020-05-08  本文已影响0人  fat32jin

7.1 概述

7.1.1 NodeManager基本职能

NM和 RM AM的 关系.png

7.1.1 NodeManager 架构

image.png

7.2 健康检查

--

7.3 分布式缓存机制

image.png

7.3.2 分布式缓存实现

image.png

Container的工作目录位于{yarn.nodemanager.local-dirs}/usercache/{user}/{appcache}/{appid}/${containerid}目录下

❑PUBLIC资源:存放在
{yarn.nodemanager.local-dirs}/filecache/目录下,每个资源将单独存放在以一个随机整数命名的目录中,且目录的访问权限均为0755。
❑PRIVATE资源:存放在{yarn.nodemanager.local-dirs}/usercache/{user}/filecache/目录下(其中,{user}是应用程序提交者,默认情况下,均为NodeManager启动者),每个资源将单独存放在以一个随机整数命名的目录中,且目录的访问权限均为0710。❑APPLICATION资源:存放在{yarn.nodemanager.local-dirs}/usercache/{user}/{appcache}/{appid}/filecache/目录下(其中,{appid}是应用程序ID),每个资源将单独存放在以一个随机整数命名的目录中,且目录的访问权限均为0710;

为了避免缓存的文件过多导致磁盘“撑爆”,NodeManager会定期清理过期的缓存文件,具体方法如下:每隔一定时间
yarn.nodemanager.localizer.cache.cleanup.interval-ms(单位是毫秒,默认值是10×60×1000,即10分钟)启动一次清理工作,确保每个缓存目录中文件容量小于yarn.nodemanager.localizer.cache.target-size-mb(单位是MB,默认是10240,即10GB),如果超过该值,则采用LRU(Least Recently Used)算法清除已不再使用的缓存文件,直至文件容量低于设定值


资源下载过程

7.4 目录结构管理

7.4.1 日志目录结构

❑stdout:使用标准输出函数打印的日志,比如Java中的System.out.print输出的内容。
❑stderr:标准错误输出产生的日志信息。
❑syslog:使用log4j打印的日志信息,最常用

${remoteRootLogDir}/${user}/${suffix}/${appid}目录中
(${remoteRootLogDir}值由参数yarn.nodemanager.remote-app-log-dir指定,默认是"/tmp/logs";
${user}为应用程序拥有者;
${suffix}值由参数yarn.nodemanager.remote-app-log-dir-suffix指定,默认是"logs";
${appid}为应用程序ID),且同一个节点中所有日志保存到该目录中的同一个文件,这些文件以节点ID命名。 

例如:
/hadoop/agg-logs/mr/logs/application_1587802751255_17720

yarn logs -applicationId application_1587802751255_17720

7.6 Container生命周期剖析

Container启动过程主要经历三个阶段:资源本地化、启动并运行Container和资源清理

image.png
上一篇下一篇

猜你喜欢

热点阅读