主页 > 新闻中心 > 领导活动 >

阿里P8带你走进YARN,一起探索YARN到底是什么鬼东西?

Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。

可以把yarn理解为相当于一个分布式的操作系统平台,而mapreduce等运算程序则相当于运行于操作系统之上的应用程序,Yarn为这些程序提供运算所需的资源(内存、cpu)。

yarn并不清楚用户提交的程序的运行机制yarn只提供运算资源的调度(用户程序向yarn申请资源,yarn就负责分配资源)yarn中的主管角色叫ResourceManageryarn中具体提供运算资源的角色叫NodeManageryarn与运行的用户程序完全解耦,意味着yarn上可以运行各种类型的分布式运算程序,比如mapreduce、storm,spark,tez ……spark、storm等运算框架都可以整合在yarn上运行,只要他们各自的框架中有符合yarn规范的资源请求机制即可yarn成为一个通用的资源调度平台.企业中以前存在的各种运算集群都可以整合在一个物理集群上,提高资源利用率,方便数据共享总结:是一个通用的资源管理 和任务调度系统!

ResourceManager通常在独立的机器上以后台进程的形式运行,它是整个集群资源的主要协调者和管理者。ResourceManager负责给用户提交的所有应用程序分配资源,它根据应用程序优先级、队列容量、ACLs、数据位置等信息,做出决策,然后以共享的、安全的、多租户的方式制定分配策略,调度集群资源。NodeManager

NodeManager是 YARN 集群中的每个具体节点的管理者。主要负责该节点内所有容器的生命周期的管理,监视资源和跟踪节点健康。具体如下:

启动时向ResourceManager注册并定时发送心跳消息,等待ResourceManager的指令;维护Container的生命周期,监控Container的资源使用情况;管理任务运行时的相关依赖,根据ApplicationMaster的需要,在启动Container之前将需要的程序及其依赖拷贝到本地。ApplicationMaster

在用户提交一个应用程序时,YARN 会启动一个轻量级的进程ApplicationMaster。ApplicationMaster负责协调来自

ResourceManager的资源,并通过NodeManager监视容器内资源的使用情况,同时还负责任务的监控与容错。具体如下:

根据应用的运行状态来决定动态计算资源需求;向ResourceManager申请资源,监控申请的资源的使用情况;跟踪任务状态和进度,报告资源的使用情况和应用的进度信息;负责任务的容错。 Contain

Container是 YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。当 AM 向 RM 申请资源时,RM 为 AM 返回的资源是用Container表示的。YARN 会为每个任务分配一个Container,该任务只能使用该Container中描述的资源。ApplicationMaster可在Container内运行任何类型的任务。例如,MapReduce ApplicationMaster请求一个容器来启动 map 或 reduce 任务,而Giraph ApplicationMaster请求一个容器来运行 Giraph 任务。

我最近一直在思考(大数据通俗讲解)的问题,你的看法是什么呢?关注我快说出来一起交流一下吧~

×

扫一扫关注 集团官方微信