`

job运行流程(2)---ResourceManager调度job

 
阅读更多

6、接着上篇文章中的最后一步:ResourceManager服务端执行ClientRMService.submitApplication(),接着开始调用RMAppManager.submitApplication()进而来触发RMAppEvent事件,成为job调度运行事件触发的源头;

(本系列文章主要分析job调度运行流程的主要事件流程,像其它的日志读写事件流程、container监控流程等并没有包括在内)

 

7、接着触发了RMAppImpl.handle(),这其中注册了多种状态转换机制,负责RMAppState的各种状态转换;

 

8、ResourceManager服务启动初始化时会启动一个线程,循环处理container的调度分配,具体过程如下:

ResourceManager.serviceInit->ResourceManager.RMActiveServices.serviceInit

->ResourceManager.createScheduler->ResourceScheduler(默认为CapacityScheduler).reinitialize()

->CapacityScheduler.AsyncScheduleThread.start()

然后循环处理各个nodemanager上面的containers资源分配

CapacityScheduler.schedule()->CapacityScheduler.allocateContainersToNode()

->LeefQueue.assignContainers()->LeefQueue.assignContainersOnNode()

->LeefQueue.assignContainer()->FiCaSchedulerApp.allocate()->RMContainerImpl.handle(RMContainerEventType.START)

更新状态RMContainerState.NEW->RMContainerState.ALLOCATED

 

9、接着后面会触发RMAppAttemptImpl.handle(),这其中和RMAppImpl类似,同样注册了多种状态转换机制,负责RMAppAttemptState的各种状态转换;

 

10、接着后面会触发RMContainerImpl.handle(),同样注册了多种状态转换机制,负责RMContainerState的各种状态转换,这里会触发RMAppAttemptEventType.CONTAINER_ALLOCATED事件,进而开始触发ApplicationMasterLaunch相关事件,至此完成了YARN中的ResourceManager端的job调度流程;

 

整个流程如下图所示:

 

 

 下一篇:http://rainforc.iteye.com/blog/2287249

  • 大小: 133.8 KB
分享到:
评论

相关推荐

    OOZIE 配置和调度流程(1).doc

    * 运行作业:oozie job -oozie http://localhost:11000/oozie -start job-id * 暂停作业:oozie job -oozie http://localhost:11000/oozie -suspend job-id * 杀死作业:oozie job -oozie ...

    yarn基本运作流程

    - 客户端(Client)向YARN提交一个作业(job),请求ResourceManager分配资源。 - ResourceManager收到请求后,会开启一个Container,并在其中运行一个ApplicationMaster。 2. **ApplicationMaster初始化** - ...

    【Spark内核篇03】Spark任务调度机制1

    在YARN-Cluster模式下,Driver运行在ApplicationMaster中,它负责初始化SparkContext,建立与ResourceManager和Executor的连接。Executor启动后,会向Driver注册并保持心跳,等待接收和执行Task。Driver通过...

    Lesson 3: More About Jobs and Job Details

    Quartz允许开发者定义复杂的调度规则,如cron表达式,来决定Job何时运行。Spring Batch则提供了强大的批处理功能,包括事务管理、错误处理和跟踪。通过阅读源码,我们可以了解到这些框架是如何实现任务调度的,以及...

    hive监控巡检优化文档

    - 检查HiveServer2的运行状态,确保没有异常错误发生。 - 可以通过命令行工具如`hive --service hiveserver2`启动时的日志来查看异常信息。 - **Jvm堆栈内存是否有激增** - 监控HiveServer2的JVM内存使用情况,...

    藏经阁-零基础入门:从0到1学会 Apache Flink-204.pdf

    - **Job执行流程**:Flink的Job执行流程包括作业提交、资源分配、任务调度和执行。JobManager负责作业管理,TaskExecutor则负责具体任务的执行。 - **资源管理**:ResourceManager全局管理集群资源,Dispatcher...

    HadoopHA集群部署、YARNHA测试Job教学课件.pptx

    在 Job 运行过程中,故意停止当前活动的 ResourceManager,观察备用节点是否能自动接管并继续运行 Job。 3. 由于 `/output` 目录会在 Job 运行时自动生成,所以不需要预先创建。 4. Job 完成后,检查 `/output` 目录...

    我的面试题

    2. **初始化作业资源路径**:`ResourceManager` 初始化用于存放 Job 相关资源的路径,并设置客户端的主机属性,然后返回给客户端 Job ID 和作业资源的存放路径。 3. **资源文件上传至 HDFS**:客户端以返回的路径和...

    【大数据学习资料】Flink 八大主题面试准备.pdf

    - **客户端提交Job**:向ResourceManager申请资源,启动ApplicationMaster。 - **ApplicationMaster启动JobManager**:分析作业图,转化为执行图。 - **JobManager申请资源**:ResourceManager分配container启动...

    [HACK学习呀] - 2020-11-13 渗透技巧-Hadoop命令执行1

    2. 杀死Job:`hadoop job –kill job_id` 3. 获取Job的详细历史记录:`hadoop job -history all output-dir` 4. 杀死单个任务:`hadoop job -kill-task <task-id>` 5. 标记任务失败:`hadoop job -fail-task <task-...

    hadoop2 MR运行修改jar

    `org.apache.hadoop.mapreduce.JobClient`类是这个库的核心,它负责与JobTracker(在Hadoop 2.x中被ResourceManager替代)进行通信,执行各种操作,如提交Job、获取Job状态、杀死Job等。 在Windows环境中,由于路径...

    Yarn框架代码详细分析V0.3.pdf

    **3.2 ResourceManager调度器** - **简述:** - ResourceManager的核心组件之一是调度器,负责资源的分配。 - **FairScheduler代码分析:** - 实现了公平调度算法,确保资源在多个应用程序之间公平分配。 - **...

    hdp-day03-05笔记

    程序的整体运行流程分为两个主要阶段:map阶段和reduce阶段。 1. Map阶段: - 输入:通常是文本文件,每行被视为一个输入记录。 - 输出:将每行文本数据拆分成单词,每个单词与数字1组成键值对<单词,1>。这里,...

    3大数据技术之Hadoop(MapReduce).doc

    6. **MapReduce程序运行流程** - 输入文件被分片,客户端提交Job信息给ResourceManager。 - ResourceManager启动MRAppMaster,后者负责任务的调度。 - MapTask和ReduceTask在NodeManager上执行,处理数据和结果的...

    mapreduce编程说明和程序流程

    - 用户提交一个Job到Hadoop集群,JobTracker(在YARN中为ResourceManager)会分配TaskTracker(YARN中的NodeManager)来执行Map和Reduce任务。 - JobTracker监控作业进度,重新调度失败的任务,并协调数据的交换。...

    MapReduceV1和V2的API区别

    Job类被Container类取代,表示任务运行的资源容器。 3. **应用程序模型** - **MRv1**: MRv1中的应用程序模型较为简单,但缺乏灵活性,如不能很好地支持迭代计算或流式计算。 - **MRv2**: MRv2引入了更灵活的应用...

    my document

    综上所述,无论是 Hadoop 1.x 还是 2.x 版本,Job 的提交流程都包括了从客户端提交作业、资源文件的上传与管理、作业的调度与执行等多个环节。不同版本之间的主要区别在于 2.x 版本引入了 YARN 架构,从而实现了资源...

    hadoop-common-2.6.0-bin-master.zip.rar

    2. **提交Job**:Driver会提交Job到JobTracker或ResourceManager,测试时要验证Job是否成功提交,并检查Job状态。 3. **Mapper和Reducer的执行**:测试Mapper和Reducer的逻辑,确保它们能正确处理输入数据并生成...

    Windows上向集群提交任务.docx

    指定MapReduce运行在YARN上(`mapreduce.framework.name`),允许跨平台提交(`mapreduce.app-submission.cross-platform`),以及YARN资源管理器的位置(`yarn.resourcemanager.hostname`)。 2. **设置Job**: -...

    Hadoop大数据平台构建、YARN配置、启动与验证教学课件.pptx

    2. `<name>yarn.resourcemanager.hostname</name>`:指定ResourceManager的主机名,这里是`slave1`,ResourceManager负责全局的资源分配和调度。 3. `<name>yarn.log-aggregation-enable</name>`:开启或关闭日志...

Global site tag (gtag.js) - Google Analytics