【hadoop源码分析】——package org.apache.hadoop.yarn.sls.appmaster.AMSimulator

  1. TaskRunner类的位置:package org.apache.hadoop.yarn.sls.appmaster;
  2. 访问权限和继承关系:public abstract class AMSimulator extends TaskRunner.Task{},由于AMSimulator 继承于TaskRunner.Task。那么我们回顾一下TaskRunner.Task这个类(详细的请看我上一篇文章):
    这里写图片描述
  3. AMSimulator类概览
    这里写图片描述
  4. 分析:由于AMSimulator 继承于TaskRunner.Task,而TaskRunner.Task实现了runnable接口,因此在调用线程的start()方法之后就会执行TaskRunner.Task的run()方法。
 @Override
    public final void run() {
      try {
        if (nextRun == startTime) {
          firstStep();
          nextRun += repeatInterval;
          if (nextRun <= endTime) {
            queue.add(this);          
          }
        } else if (nextRun < endTime) {
          middleStep();
          nextRun += repeatInterval;
          queue.add(this);
        } else {
          lastStep();
        }
      } catch (Exception e) {
        e.printStackTrace();
        Thread.getDefaultUncaughtExceptionHandler()
            .uncaughtException(Thread.currentThread(), e);
      }
    }

回到SlsRunner类中,start()方法依次调用了RMSimulator、NMSimulator、AMSimulator类的run()。那么其中AMSimulator的run()方法干了什么事情呢?
依次看该类的firstStep(),middleStep(),lastStep()方法都干了什么:

1.firstStep():和RM注册:提交新的应用+注册AM+跟踪应用程序指标
2. middleStep():处理队列中的相应+发送container请求+检查是否完成
3.lastStep():注销跟踪+注销AM+记录作业运行信息

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值