本文共 1061 字,大约阅读时间需要 3 分钟。
yarn组件:Client,ResourceManager,ApplicationMaster,NodeManager,Container
Client:负责提交应用程序
ResourceManager:全局资源管理器,处理客户端请求,启动/监控 ApplicationMaster,监控NodeManager,资源分配和调度
有两部分组成
1、调度器:根据各应用程序需求进行资源分配 2、应用程序管理器:负责管理系统中所有应用程序
ApplicationMaster:数据切分, 为应用程序申请资源,任务监控和容错
NodeManager:
1、负责本节点的资源管理
2、 处理 ResourceManager 命令, ApplicationMaster 命令
Container:
NodeManager管理抽象容器container
yarn中对资源的抽象, 封装本节点上的内存,cpu,磁盘,网络等资源,此资源就是用container表示
Yarn工作流程
1、client端向ResourceManager提交应用程序,即client将 jar包,参数等数据上传到HDFS
2、resourceManager将此应用程序添加到任务队列
3、等待资源充沛时,resourceManager为该应用程序分配第一个container,在container中启动应用程序ApplicationMaster
4、ApplicationMaster首先向ResourceManager注册,并采用轮询方式通过RPC协议向ResourceManager申请资源,发送命令让NodeManager创建container,之后执行task
6、ApplicationMaster监控 job 执行作业,直到 job 完成后, 向ResourceManager通知,注销自己
Yarn RPC协议
在YARN中,任何两个需相互通信的组件之间仅有一个RPC协议,而对于任何一个RPC协议,通信双方有一端是Client,另一端为Server,且Client总是主动连接Server的,因此,YARN实际上采用的是拉式(pull-based)通信模型。
NodeManager-ResourceManager:注冊、汇报节点健康状况和Container执行情况
ApplicationMaster-ResourceManager:向RM注冊、申请和释放资源
Client-ResourceManager:向RM提交程序、控制程序、查询程序
转载地址:http://hxazi.baihongyu.com/