美文网首页hadoop
董西城《深入解析YARN》- 第7章 NodeManager剖析

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

作者: fat32jin | 来源:发表于2020-05-08 08:38 被阅读0次

    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 目录结构管理

    • 数据目录
      配置项:yarn.nodemanager.local-dirs
    • 日志目录
      配置项: yarn.nodemanager.log-dirs 容器日志
      配置项:hadoop.log.dir nodemanager服务本身日志

    7.4.1 日志目录结构

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

    • 清理机制
      配置项:yarn.nodemanager.log.retain-seconds
      保留用户日志的时间(以秒为单位)。仅适用在日志聚合已禁用的情况下。

    • 日志聚合


      image.png

      该机制将HDFS作为日志聚集仓库,它将应用程序产生的日志上传到HDFS上,以便统一管理和维护。该机制由两阶段组成:文件上传和文件生命周期管理。

    • 文件上传
      当一个应用程序运行结束时,它产生的所有日志将被统一上传到HDFS上的
    ${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

    • 生命周期管理
      转存到HDFS上的日志的生命周期不再由NodeManager负责,而是由JobHistory服务管理

    • 查看日志命令( 注意要切换到对应user身份下)

    yarn logs -applicationId application_1587802751255_17720
    

    7.6 Container生命周期剖析

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

    image.png

    相关文章

      网友评论

        本文标题:董西城《深入解析YARN》- 第7章 NodeManager剖析

        本文链接:https://www.haomeiwen.com/subject/ygkpmhtx.html