1 作业提交流程
客户端提交MR作业 Yarn的资源管理器Resource Manager 协调集群计算资源的分配 Yarn的节点管理器 NodeManager 启动并监控集群中计算容器 MapReduce中的Application Master 协调MR作业中的任务运行 ApplicationMaster和MR运行在容器中,容器由resourceManager调度 由NodeManager管理 HDFS在组件内共享作业数据 Job对象的submit方法创建了一个内部的JobSubmitter实例并调用该实例的submitJobInternal方法。一旦提交了作业,waitForCompletion方法每秒钟轮询作业的执行进度,如果进度发生了变化,则向控制台报告进度。当作业成功完成,展示作业计数器的数据。否则展示作业失败的错误日志信息。
客服端提交作业的过程 1 先申请一个ApplicationID 给MR用 2 检查输入输出路径 不能没有或者存在 3 计算输入的切片 4 拷贝执行作业需要的资源 (10份)在HDFS上 资源包括(jar包 配置文件 计算好的输入切片)5 调用resourcemanager的submitApplication方法提交作业。
Yarn为请求分配一个容器 resourceManager 通过容器所在节点上的nodemanager在该容器上启动一个applicationMaster进程 applicationMaster从hdfs抽取切片为每一个切片创建一个map任务 以及一定数量的reduce任务对象 applicationMaster会为作业中所有任务向resourceManager请求容器 appmaster从hdfs抽取客户端上传的信息,计算好map对象和reduce对象,首先向resourcemanager为map任务申请资源,当map任务完成5%之后为reduce任