YARN是一个资源调度平台,它负责为各种运算程序提供服务器运算资源,相当于一个分布式的操作系统平台
YARN可以运行各种类型的分布式运算程序,MapReduce只是其中一种,它还可以运行Spark程序,Storm程序等。前提是这些程序所属的框架符合YARN规范的资源请求机制
YARN不了解用户提交的程序的运行机制。它只负责提供运算资源的调度(仅负责分配资源给应用程序所申请的)
ResourceManager负责YARN的总调度
NodeManager负责提供运算资源
正是由于YARN的通用性,使得各种运算集群都可以整合到上面,提高了资源的利用率,方便了数据的共享