yarn:资源调度和任务管理
a、四大组件:(四个进程)
ResourceManager(Rm):主进程
Nodemanager(NM):各个机器节点管理器
ApplicationMaster(AM):申请资源
Container容器:处理各个节点分布式作业的
YARN架构介绍:
YARN执行流程:
1、client连接RM提交作业,RM给client一个JobId(ApplicationManager和ResourceScheduler)
2、RM中的ApplicationManager连接一个NM,让NM创建一个AM处理客户端作业请求
3、AM连接RM中的ApplicationManager申请Nodemanager,
4、AM连接ResourceScheduler去给client的作业申请资源(cpu、内存、磁盘、网络)
5、AM连接NM,发送client job作业程序和申请的资源cpu、内存、磁盘、网络
6、NM启动Container进程运行job的不同任务
7、Container进程运行状态实时反馈给AM
8、AM反馈任务状态信息给RM中的ApplicationManager
9、client端可以连接RM或AM查询job的执行情况
注:NM启动后去RM上进行注册,会不断发送心跳,说明存活状态
四大组件的作用:
ResourceManager:
1、处理客户端请求
2、启动/监控ApplicationMaster
3、监控NodeManager
4、资源分配与调度
APPlicationMaster:
1、程序切分
2、为应用程序申请资源,并分配任务
3、任务监控与容错
NodeManager:
1、单个节点上资源管理
2、处理来自ResourceManager的命令
3、处理来自ApplicationMaster的命令
Container:
对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关信息’