YARN的架构组件功能

hadoop1.0和hadoop2.0的最大区别就在于hadoop2.0多出了一个yarn,hadoop1.0中Mapreduce即承担集群资源的管理和调  度,又承担数据的处理,而hadoop2.0中将这两个任务分离开,yarn来对集群的资源进行管理和调度,Mapreduce来进行数据的处理,并且Mapreduce是运行在yarn上边的,yarn上不仅能运行Mapreduce这种并行计算框架,还能运行其他的,比如流式计算框架storm,内存计算框架spark,所以yarn被称为hadoop的操作系统

yarn服务组件:

    * yarn总体上仍然是Master/slave(主从)结构,在整个资源管理框架中,Re'sourceManager为Master,NodeManager为               Slave

    *ResourceManager负责对各个NodeManager上的资源进行统一管理和调度

    *当用户提交一个应用程序时,需要提供一个用以跟踪和管理这个程序的

    *ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManager启动可以占用一定资源的任务

    *由于不同的ApplicationMaster被分布到不同的节点上,因此他们之间不会相互影响

ResourceManager:

     *全局的资源管理器,整个集群只有一个,负责集群资源的统一管理和调度分配

     *功能:

              处理客户端请求

              启动/监控Application Master

              监控NodeManager

              资源分配与调度

NodeManager:

      *整个集群有多个,负责单节点资源管理和使用

      *功能:

              单个节点上的资源管理和任务管理

              处理来自ResourceManager的命令

              处理来自Application Master的命令

      *NodeManager管理抽象容器,这些容器代表着可供一个特定应用程序使用的针对每个节点的资源

      *定时的向RM汇报本节点上的资源使用情况和各个Container的运行状态

Application Master:

       *管理一个在yarn内运行的应用程序的每个实例

       *功能:

             为应用程序申请资源,并进一步分配给内部任务

             任务监控与容错

       *负责协调来自ResourceManager的资源,并通过NodeManager监视容器的执行和资源使用(cpu 内存等的资源分配)

Container:

       *yarn中的资源抽象,封装某个节点上的多维度资源,如内存,cpu,磁盘,网络等,当AM向RM申请资源时,RM向AM返回的           资源便是用Container表示的

       *yarn会为每个任务分配一个Container,且该任务只能使用该Container中描述的资源

       *功能:

             对任务运行环境的抽象

             描述一系列信息

            任务运行资源(节点,内存,cpu)

            任务启动命令

            任务运行环境

 

 

 

 

<think>嗯,用户之前询问了Hive的存储、计算组件和工作核心,现在转向了YARN的核心组件功能。用户给出了详细的引用资料(1-5),需要我据此整理YARN的核心架构。注意到用户强调引用标注(类似[^1]格式),且要求中文回答。之前的对话显示用户具备Hadoop生态基础,可能是开发或运维人员,需要体系化的组件解析。YARN三大核心组件已明确引用出处:-ResourceManager(RM)的全局调度职能来自引用[2][^2]和引用[4][^4]的调度策略说明-NodeManager(NM)的本节点管理引用引用[2][^2]和引用[5][^5]的资源量化描述-ApplicationMaster(AM)的任务协调特性在引用[3][^3]中明确为"每个应用独有进程"特别需要注意Container的抽象概念引用[5][^5]量化说明(内存/CPU),以及引用[4][^4]的三种调度器差异。用户可能实际需要了解调度选择(如生产环境多用CapacityScheduler)。最终回答需保持技术准确性:比如强调RM不参与具体计算(纯调度器),AM与具体计算框架绑定,NM通过心跳机制汇报。相关问题的设计应延伸YARN运维(HA配置)和优化方向(如资源超卖),这些在原始引用里都有线索可循。</think> 以下基于YARN架构整理的核心组件功能介绍(引用已标注): ### 一、核心组件架构 ```mermaid graph TD A[YARN] --> B[ResourceManager] A --> C[NodeManager] A --> D[ApplicationMaster] A --> E[Container] ``` ### 二、组件功能详解 1. **ResourceManager(RM)** - **角色**:全局资源调度器(主节点)[^2] - **核心职能**: - 统一管理集群资源(CPU/内存) - 接收应用提交请求,分配初始资源 - 实现资源调度策略(FIFO/Capacity/Fair)[^4] - 监控NodeManager状态 2. **NodeManager(NM)** - **角色**:节点资源代理(从节点)[^2] - **核心职能**: - 管理单节点物理资源(CPU/内存/磁盘) - 执行容器启停操作(`Container`生命周期管理) - 向RM定时发送心跳(节点健康状况/资源使用量)[^5] 3. **ApplicationMaster(AM)** - **角色**:应用级协调者(按应用创建)[^3] - **核心职能**: - 向RM动态申请/释放资源(`Container`资源单元) - 协调分布式任务执行流程(MapReduce/Spark等) - 处理任务故障恢复(容错机制) 4. **Container** - **角色**:资源抽象单元[^5] - **核心特性**: - 资源封装:$$ \text{Container} = \{ \text{CPU核心数}, \text{内存(MB)}, \text{虚拟化环境} \} $$ - 动态分配:按需创建,任务结束自动回收 - 安全隔离:通过Linux Cgroups实现资源隔离 ### 三、工作流程示例 ```mermaid sequenceDiagram participant Client participant RM participant NM participant AM Client->>RM: 提交应用 RM-->>AM: 分配首个Container启动AM AM->>RM: 申请任务Container资源 RM->>NM: 分配Container资源 NM->>AM: 返回Container执行权 AM->>NM: 下发计算任务 NM->>AM: 汇报任务状态 AM->>RM: 应用完成,释放资源 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值