曾有人调侃:HBase 没有资源什么事情也做不了,Spark 占用了资源却没有事情可做?
那 YARN了解一下?
01
YARN!
伴随着Hadoop生态的发展,不断涌现了多种多样的技术组件 Hive、HBase、Spark……它们在丰富了大数据生态体系的同时,也引发了新的问题思考。
熟悉大数据底层平台的朋友,应该都了解这些为大数据场景设计的技术组件不仅个个都是消耗资源的大户,而且它们本有一套自己的资源调度系统用来管理任务的资源分配,但同时部署在一起的时候就出问题了:
一、某些组件可能申请不到服务器资源。
二、可能会出现资源分配不合理的情况,导致整体资源使用率偏低。
为了解决这些问题,则迫切需要一种通用的资源调度框架,对整个集群的资源进行统筹管理。
02
YARN有何优势?
YARN 在 Hadoop 集群中充当资源管理和任务调度的框架,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
YARN 解决了 Hadoop 第一代集群资源调度框架上可靠性差、扩展性差等一系列问题,我们来看一下它的优势:
1. 提出了 HDFS Federation,能够让多个 NameNode 分管不同的目录进而实现访问隔离和横向扩展;
2. 将资源管理和作业控制分离,ResouceManager专管资源管理和调度,ApplicationMaster负责与具体应用程序相关的任务切分、任务调度和容错等,每个应用程序对应一个ApplicationMaster;
3. 具有向后兼容性,用户在 MRv1上运行的作业,不用修改即可运行在 YARN 之上;
4. 能够支持不同的计算框架,可以将各种各样的计算框架移植到 YARN 之上,由 YARN 进行统一管理和资源分配;
5. 框架升级更容易,各种计算框架不再是作为一个服务部署到集群的各个节点上而是被封装成一个用户程序库(lib)存放在客户端,想对计算框架进行升级时,只要升级用户程序库即可。
众所周知,Spark、Hive等一系列服务都可以作为应用运行在YARN之上,统一使用 YARN 为整个集群资源进行宏观的调度与分配。
而对于学习 YARN 不仅为了应对工作上遇到的相关技术问题,更是因为想要成功进入阿里、字节还是美团等互联网大厂,YARN 在面试时都是高频考点,所以掌握它至关重要。