yarn

232 阅读2分钟

什么是yarn

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop资源管理器,它是一个`通用`资源管理系统,可为上层应用提供统一的资源管理和任务调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
yarn负责集群中所有资源(包括计算资源和存储资源)的管理和调度。

YARN的基本思想是将JobTracker的两个主要功能(资源管理和任务调度)分离,主要方法是创建一个全局的ResourceManager(RM)和若干个针对应用程序的ApplicationMaster(AM)。
这里的应用程序是指传统的MapReduce作业或作业的[DAG](有向无环图)。

常见的进程

resoursemanager(是一个进程,一个集群只需要起一个进程,在master节点上)
负责整个集群的所有资源的管理

nodemanager(是一个进程,一个集群起多个进程,在slave节点上)
负责单台机器上的所有资源的管理。

二者是上下级的关系。
nodemanager统计自己管理的这台机器的资源使用情况,比如还剩多少cpu,还有多少内存,以及io情况怎么样,
然后向resoursemanager回报,这样resourcemanager就知道整个集群的资源的使用情况

总结:

yarn是一个集群资源管理系统,负责集群资源(包括计算资源存储资源)的管理和调度。

其中有2个进程和1个概念。

2个进程是:
   resourcemanager,简称RM.一个集群只有开启一个进程就可以,在master节点上开启
   nodemanager,简称NM,每台服务器开启一个进程,在slave节点上开启。
   

 1个概念是container,容器。
  负责隔离单个task任务的环境。
  

在一台datanode节点上(slave,nodemanager)可能会有多个task要执行,
比如一台datanode节点有4个cpu和20g内存,
那么 nodemanager可以给一个task分配3个cpu和15g内存,然后给另一个task分配1个CPU和5g内存。