1.YARN是什么?
YARN(Yet Another Resource Negotiator,另一种资源协调者): A framework for job scheduling and cluster resource management,一个作业调度和集群资源管理框架。是Apache软件基金会下大数据子项目Hadoop的一个组成部分。

2.YARN解决了什么问题?
随着大数据时代的到来,如何存储和处理这些海量数据成为大数据应用的核心关注点。主要分为三个层次:数据存储、处理算法、资源协调。

  • 数据存储

对于海量数据的存储,已经有各种分布式文件系统解决方案,如GFS,Ceph,HDFS等,它们可以可靠和高效地存取这些海量数据,数据只存储,不读取,是没有意义的。

  • 处理算法

解决了存储的问题之后,我们就应该考虑如何去处理数据了,已经有一些大数据处理框架来应对各种对处理时效性的要求,因为在大数据处理过程中,有的需要实时处理,有的需要批处理。例如:在线流处理框架:storm,离线批处理框架:mapreduce等,我们可以在这些处理框架之上,编写自己的处理算法。

  • 资源协调

似乎还少了一个东西,一个协调者,即资源管理和任务调度的问题。我们的处理算法本质上是程序,以作业为单位运行,需要读取数据,处理数据,保存结果。这些动作需要大量计算机资源去完成,再直接一点,需要CPU资源,内存资源,资源有了,就一定会达到预期的处理效果么?不一定,因为如果大家乱糟糟的,一窝蜂地去请求资源,或者各自为战,就会造成有些计算机负载极高,有些计算机负载极低,资源无法得到充分、有效地利用,最终的结果就是,我们无法在合理的时间内拿到处理结果。基于上述需求,就出现了一些解决方案,例如:YARN,K8S,Mesos。这些资源协调框架,均能完成作业调度和资源管理的任务,它们的目标就是充分、有效地利用资源,合理地调度作业,让作业有序运行,让用户能拿到想要的处理结果。

3.为什么选择YARN?