好程序员大数据实战之YARN资源管理

  好程序员大数据实战之YARN资源管理,YARN是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。node

YARN整体上仍然是master/slave结构,在整个资源管理框架中,resourcemanager为master,nodemanager是slave。Resourcemanager负责对各个nademanger上资源进行统一管理和调度。当用户提交一个应用程序时,须要提供一个用以跟踪和管理这个程序的ApplicationMaster,它负责向ResourceManager申请资源,并要求NodeManger启动能够占用必定资源的任务。因为不一样的ApplicationMaster被分布到不一样的节点上,所以它们之间不会相互影响。程序员

YARN的基本组成结构,YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等几个组件构成。架构

ResourceManager是Master上一个独立运行的进程,负责集群统一的资源管理、调度、分配等等;NodeManager是Slave上一个独立运行的进程,负责上报节点的状态;App Master和Container是运行在Slave上的组件,Container是yarn中分配资源的一个单位,包涵内存、CPU等等资源,yarn以Container为单位分配资源。Client向ResourceManager提交的每个应用程序都必须有一个Application Master,它通过ResourceManager分配资源后,运行于某一个Slave节点的Container中,具体作事情的Task,一样也运行与某一个Slave节点的Container中。RM,NM,AM乃至普通的Container之间的通讯,都是用RPC机制。框架

YARN的架构设计使其愈来愈像是一个云操做系统,数据处理操做系统。oop

最后说起YARN的资源管理,咱们能够从如下几个方面进行理解:大数据

1.资源调度和隔离是yarn做为一个资源管理系统,最重要且最基础的两个功能。资源调度由resourcemanager完成,而资源隔离由各个nodemanager实现。操作系统

2.Resourcemanager将某个nodemanager上资源分配给任务(这就是所谓的“资源调度”)后,nodemanager需按照要求为任务提供相应的资源,甚至保证这些资源应具备独占性,为任务运行提供基础和保证,这就是所谓的资源隔离。架构设计

3.当谈及到资源时,咱们一般指内存、cpu、io三种资源。Hadoop yarn目前为止仅支持cpu和内存两种资源管理和调度。设计

4.内存资源多少决定任务的生死,若是内存不够,任务可能运行失败;相比之下,cpu资源则不一样,它只会决定任务的快慢,不会对任务的生死产生影响。进程

相关文章
相关标签/搜索