MapReduce是基于YARN运行的,即没有YARN“无法”运行MapReduce程序,所以MapReduce和YARN同时学习
资源调度
什么是资源调度?为什么需要资源调度?
资源:服务器硬件资源,如:cpu,内存,硬盘,网络
资源调度:管控服务器硬件资源,提供更好的利用率
分布式资源调度:管控整个分布式服务器集群的全部资源,整合进行统一调度
程序的资源调度
服务器会运行多个程序,每个程序对资源(cpu内存等)的使用都不同
程序没有节省的概念,有多少就会用多少
所以,为了提高资源利用率,及那个调度就非常有必要了
YARN的资源调度
YARN管控整个集群的资源进行调度,那么应用程序在运行时,就是在YARN的监管下去运行的
这就像:全部资源都是公司的(YARN)的,由公司分配给个人(具体的程序)去使用
比如,一个具体的MapReuce程序会将任务分解为若干个Map任务和Reduce任务
向YARN申请使用资源,YARN分配好资源后运行,空闲资源可供其他程序使用
1.YARN是做什么的
YARN是Hadoop的一个组件
用以做集群的资源(内存,cpu等)调度
2.为什么需要资源调度
将资源统一管控进行分配可以提高资源利用率
3.程序如何在YARN内运行
程序向YARN申请所需资源
YARN为程序分配所需资源提供程序使用
4.MapReduce和YARN的关系
YARN用来调度资源给MapReduce分配和管理运行资源
所以,MapReduce需要YARN才能执行(普遍情况)