2.2.10 YARN
Apache Hadoop YARN(Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处[18]。YARN作为分布式集群的资源调度框架,它的出现伴随着Hadoop的发展,使Hadoop从一个单一的大数据计算引擎,成为一个集存储、计算、资源管理为一体的完整大数据平台,进而发展出自己的生态体系,成为大数据的代名词[19]。
YARN 是Hadoop 2.0中的资源管理系统,它的基本思想是将资源管理和作业调度/监控的功能分解为单独的守护进程。YARN包括两个部分:一个全局的资源调度管理器(RM)和针对每个应用程序的应用程序管理器(AM)。应用程序既可以只是一个工作,也可以是一个 DAG(有向无环图)工作。它使得Hadoop不再局限于仅支持MapReduce一种计算模型,而是可无限融入多种计算框架,并且对这些框架进行统一管理和调度。
YARN 提供了多种其他的优秀特性。
1.更快的MapReduce计算
MapReduce仍是当前使用最广泛的计算框架。YARN利用异步模型对MapReduce框架的一些关键逻辑结构(如工作进程、任务进程等)进行了重写。相对MRv1,YARN具有更快的计算速度。当然,YARN具有向后兼容性,用户在MRv1上运行的作业不需要任何修改即可运行在YARN之上。
2.对多框架支持
YARN不再是一个单纯的计算框架,而是一个框架管理器,用户可以将各种各样的计算框架移植到YARN之上,由YARN进行统一管理和资源分配。由于将现有框架移植到YARN之上需要一定的工作量,所以当前YARN仅可运行MapReduce这种离线计算框架。
3.框架升级更容易
在YARN中,各种计算框架不再作为一个服务部署到集群的各个节点上(例如,MapReduce框架,不再需要部署JobTracker、TaskTracker等服务),而是被封装成一个用户程序库(lib)存放在客户端,当需要对计算框架进行升级时,只需要升级用户程序库即可。