YARN Node Manager

1.目的

在本章Hadoop Yarn节点管理器中,我们将学习Yarn中的节点管理器,它如何与资源管理器交互以及如何分配容器。 我们还将介绍不同的节点管理器组件,辅助服务如何在节点管理器中运行。

2. Hadoop Yarn节点管理器介绍

从概念上讲,NodeManager更像是TaskTracker( MapReduce V1)的通用高效版本,比TaskTracker更灵活。 与用于MRV1中map和reduce任务的固定槽数对比,MRV2的NodeManager具有许多动态创建的资源容器 (Container)。 容器是指一组资源,如内存,CPU,磁盘和网络IO。 节点上的容器数量是配置参数和节点资源总量的决定的。 节点管理器是Yarn的从守护进程。

1542029041345601

Hadoop Yarn节点管理器是安装在每个节点的框架代理,负责容器,监控其资源使用情况并向ResourceManager报告监控情况。 监督容器的生命周期管理,NodeManager还可以跟踪运行节点的运行状况,控制不同YARN应用程序在任何时间点都可以利用的辅助服务。 NodeManager可以通过为每个任务创建容器来执行对ApplicationMaster有意义的任何计算。上述体系结构图给出了NodeManager组件的详细视图。

 

3. Yarn NodeManager组件

本节的Hadoop Yarn节点管理器将提供YARN节点管理器组件的详细描述

 3.1 NodeStatusUpdater

启动时,此组件向ResourceManagerRM)注册并向每个节点发送有关可用资源的信息。随后的NM-RM通信交换更新每个节点的容器状态,如节点上运行的容器已完成等。

此外,RM可能会通知NodeStatusUpdater终止正在运行的容器。

3.2 Container Manager

 作为NodeManager的核心组件,肩负着管理每个节点上运行的容器及其子组件的责任,每个子组件都执行管理节点上运行的容器所需的功能子集。

 RPC Server – ContainerManager,它接受来自应用主服务(AM)的启动新容器的请求,或者停止运行中的容器。它与ContainerTokenSecretManager关联来授权所有请求。在此节点上运行的容器上执行的所有操作都会写入审计日志,可以使用安全工具进行后期处理。

 ResourceLocalizationService负责安全地下载和组织各种容器所需的文件资源。它尽最大努力在所有可用磁盘上分发文件。它还检查下载文件的访问控制限制,并对它们设置适当的使用限制。

 ContainersLauncher-维护一个线程池,以尽可能快地准备和启动容器。此外,当RMApplicationMastersAM)发送清理容器等请求时,进行清理容器的进程等。

 AuxServices– NM提供了一个通过配置辅助服务来扩展其功能的框架。这允许框架可定义需要的每节点自定义服务,对于AuxService , 对它进行沙箱处理以便辅助服务能够和NM中的其他服务分离。辅助服务必须在NM启动之前进行配置。当应用程序的第一个容器在节点上启动时以及应用程序被认为完成时,会通知辅助服务。

 ContainersMonitor该组件在容器运行时开始观察其资源利用率。为了强化内存等资源的隔离和公平共享,RM为每个容器分配了一定数量的资源。 ContainersMonitor持续监视每个容器的使用情况,如果容器超出其分配范围,容器将被杀死。这样做是为了防止任何不受控的容器对在同一节点上运行的其他行为良好的容器造成不利影响。

 LogHandler可插入组件,可选择将容器的日志保留在本地磁盘上,或将它们压缩在一起并将它们上传到文件系统中。

 3.3 Container Executor

与底层操作系统进行交互,安全地放置容器所需的文件和目录,随后以安全的方式启动和清理与容器相对应的进程。

 3.4 NodeHealthChecker服务

通过定期运行配置脚本来检查节点运行状况的功能是NodeHealthCheckerService的应有责任。它还通过每隔一段时间在磁盘上创建临时文件来专门监视磁盘的运行状况。系统健康状况的任何变化都会通知NodeStatusUpdaterNodeStatusUpdater会将信息传递给RM

 3.5 安全

ContainerTokenSecretManager:检查容器的请求,以确保所有传入请求确实由ResourceManager正确授权。

 3.6 Web Server

公开应用程序列表,在给定时间点在节点上运行的容器信息,节点健康相关信息以及容器生成的日志。

 对于MapReduce应用程序,MapReduce任务在容器内执行。然而,在MapReduce任务之间(即Container外部),有'Shuffle and Sort'阶段。此阶段中的操作必须另外指定为YARN作为NodeManager辅助服务。

 简要总结一下,NodeManager的关键功能是根据AM请求启用容器启动。 NM接收到容器启动请求后,验证该请求,在资源分配前授权用户。

 

YARN Node Manager

发表评论

邮箱地址不会被公开。 必填项已用*标注

九十 二 ÷ 二十 三 =

滚动到顶部