yarn简述
yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式操作系统平台,而mapreduce等运算程序则相当于运行与操作系统之上的应用程序。
ResourceManager:总的老大:处理客户端请求,监控NodeManager,启动或监控ApplicationMaster,资源的分配与调度
ApplicationMaster:单个job的老大:负责数据切分,为应用程序申请资源并分配内部的任务,任务的监控与容错
NodeManager:单个节点的老大:管理单个节点的资源,处理来自ResourceManager、ApplicationMaster的命令
Container:资源抽象:如内存、cpu、磁盘、网络等
作业提交运行情况:
1.client向yarn提交job,首先找ResourceManager分配资源,
2.ResourceManager开启一个Container,在Container中运行一个Application manager
3.Application manager找一台nodemanager启动Application master,计算任务所需的计算
4.Application master向Application manager(Yarn)申请运行任务所需的资源
5.Resource scheduler将资源封装发给Application master
6.Application master将获取到的资源分配给各个nodemanager
7.各个nodemanager得到任务和资源开始执行map task
8.map task执行结束后,开始执行reduce task
9.map task和 reduce task将执行结果反馈给Application master
10.Application master将任务执行的结果反馈Application manager