yarn提交总结
来源:互联网 发布:linux反向解析域名 编辑:程序博客网 时间:2024/06/05 17:11
注:此记录仅做自己学习记录
yarn的resourceManager 是个全局的资源管理器,负责整个系统的资源管理和分配。它主要由两个组件
构成:调度器(Scheduler)和应用程序管理器(Applications Manager,ASM)
1: 调度器根据容量、队列等限制条件,将系统中的资源分配给各个正在运行的应用程序。需要注意的是,该调度器是一个“纯调度器”,它不再从事任何与具体应用程序相关的工作,比如不负责监控或者跟踪应用的执行状态等,也不负责重新启动因应用执行失败或者硬件故障而产生的失败任务;
2:应用程序管理器负责管理整个系统中所有应用程序,包括应用程序提交、与调度器协商资源以启动 ApplicationMaster、监控 ApplicationMaster 运行状态并在失败时重新启动它等
yarn 的NodeManager 是每个节点上的资源和任务管理器,一方面,它会定时地向 RM 汇报本节点上的资源使用情况和各个 Container 的运行状态;另一方面,它接收并处理来自 AM 的 Container启动 / 停止等各种请求。
Container 是 YARN 中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等,当 AM 向 RM 申请资源时,RM 为 AM 返回的资源便是用 Container表示的。
yarn的提交过程简单的总结如下:
第一步:client 通过RPC 的applicationClientProcotol协议提交客户自己编码的应用程序到 resourceManager,
resourceManager 收到请求后,先向资源调度器申请用以启动 applicationMaster 的资源,待申请资源后,再有 applicationMasterLauncher 与对应的 nodeManger通信,启动 applicationMaster。刚启动的applicationMaster的时候
applicationMasterLauncher会通过事件机制把 applicationMaster 注册到 AMLivelinesMiontor 服务,启动心跳监测;
第二步:applicationMaster 启动后,会经过事件机制,再经过 rpc 向 resourceManager 的 applicationMasterService 进行注册,注册信息封装在 registerApplicationMasterRequest 类中,包括节点的host,rpc_port 和 application 的作业跟踪的webURL
第三步:applicationMaster 运行过程中,会周期的向applicationMasterService 汇报心跳;applicationMasterService接受到心跳会,再通知 resourceMaster 的 AMLivelinesMiontor 跟新心跳时间;
注:resourceManager 中有三个服务
1:applicationMasterLauncher服务
1:AMLivelinesMiontor服务
2:applicationMasterService 服务
第四步:applicationMaster 向resourceManager 申请资源,包括资源列表,资源量,资源优先级;
第五部:applicationMaster 申请到资源后,通过RPC函数 ContainerManagermentProtocol 与对应的nodeManager通信以启动container;
注:nodeManager 中也有三个服务
1: NMLivelineMointor 服务 该服务遍历所有的nodeManager,检测 container 是否挂掉,若contanier挂掉,nodeManager不会重启 container ,只会通过rpc 告诉AM,让AM 决定是否重启
2: nodeListManager 服务
3: resourceTrackerManager 服务
第六部: 为了掌握container运行状态,ApplicationMaster要通过Rpc函数ContainerManagermentProtocol#getContainerStatus向nodeManger 询问 container的运行状态,一旦发现某个container运行失败后,applicationMaster可以尝试为对应的任务申请新的 资源
第七步:一旦一个container运行完成后,applicationMaster 可以通过rpc函数 让nodeMangaer释放container;
第八步:application 时刻检测作业是否完成,若完成;applicationMaster通过RPC函数 applicationMasterProtocol#finishApplicationMaster告诉resourceManager 运行程序接口
- yarn提交总结
- YARN任务提交流程
- yarn作业提交过程源码
- Yarn个人总结
- YARN 命令总结
- YARN原理总结
- Spark On Yarn:提交Spark应用程序到Yarn
- Spark On Yarn:提交Spark应用程序到Yarn
- Hadoop2.x Yarn作业提交(客户端)
- Hadoop2.x Yarn作业提交(服务端)
- Yarn中MapReduce任务提交步骤
- spark用程序提交任务到yarn
- Hadoop2.x Yarn作业提交(客户端)
- Spark通过YARN-client提交任务不成功
- mapreduce yarn 的job提交流程
- 使用eclipse向yarn提交job
- Oozie 提交Spark On Yarn示例
- Spark on yarn 提交应用的方式
- 设计模式-创建模式
- LTE Initial Attach 的过程以及相关消息的具体解析 (一)
- opencv自带之图像拼接
- 深度学习(deep learning)核心技术开发与应用培训班
- 关于爱,关于生活
- yarn提交总结
- Selenium Webdriver元素定位的八种常用方式
- 20170907编译安装PHP7.1.9
- 关于双网卡电脑,特定网页走特定网卡的设置
- 西安凌凯牵手2017亚欧经济论坛,响应“一带一路”建设
- recycleview的点击,长按事件
- ing boot属性文件之多环境配置【从零开始学Spring Boot】
- JQuery中$.ajax()方法参数详解
- Java HashMap 遍历方式性能探讨