HadoopSourceAnalyse --- Mapreduce ApplicationMaster init&startup

Overview

ApplicationMaster 是运MapReduce 任务的中间核心组组件,主要负责向ResourceManager请求Container来运行任务,并监视任务的执行:


图 1-1
上图展示了,ApplicationMaster 在初始化的时候,做了哪 些事情, 当一个新的任务提交的时候,ApplicationMaster会依次启动下列的Service:

  • Dispatcher: AsyncDispatcher
  • clientService: MRClientService
  • CommitterEventHandler Service: CommitterEventHandler
  • TaskAttemptListener Service: TaskAttemptListenerImpl
  • ContainerAllocator Service: ContainerAllocatorRouter
  • ContainerLauncher Servide: ContainerLauncherRouter
  • CleanupStaging Service: StagingDirCleaningService
  • History service: JobHistoryEventHandler
EventHandler
Histtory EventTypeJobHistoryEventHandler
JobEventTypeJobEventDispatcher
TaskEventTypeTaskEventDispatcher
TaskAttemptEventTypeTaskAttemptEventDispatcher
CommitterEventTypeCommitterEventHandler
Speculator.EventTypeSpeculatorEventDispatcher
ContainerAllocator.EventTypeContainerAllocatorRouter
ContainerLauncher.EventTypeContainerLauncherRouter

Client Service initiate and startup


图  2-1
Client 初始化的时候将读取以下信息:
  • yarn.app.mapreduce.am.job.client.thread-count: Default is:1
  • yarn.app.mapreduce.am.job.client.port-range
  • hadoop.security.authorization:Default is false
客户端可以通过这ClientService与ApplicatiionMaster通信,监控job的执行。

CommitterEVentDispatcher Init and Startup



图 3-1
CommitterEventHandler 初始化时读取以下信息:
  • yarn.app.mapreduce.am.job.committer.cancel-timeout: Default is : 60000 ms;
  • yarn.app.mapreduce.am.job.committer.commit-window: Default is: 10000 ms。

TaskAttemptListenerImpl init &startup


图 4-1
TaskAttempListener初始化时读取以下信息:
  • yarn.app.mapreduce.am.job.committer.commit-window
  • yarn.app.mapreduce.am.job.task.listener.thread-count: Default is 30

ContainerAllocatorRouter Init and Startup

Router 的主要功能是根据job的类弄启动,LocalContainerAllocator 或 RMContainerAllocator;

RmContainerAllocator init and Startup


图 5-1
RMContainerAllocator 初始 时读取以下信息:
  • yarn.app.mapreduce.am.scheduler.heartbeat.interval-ms: Default is 1000 ms
  • yarn.app.mapreduce.am.job.node-blacklisting.enable: Default is true
  • mapreduce.job.maxtaskfailures.per.tracker: Default is 3
  • yarn.app.mapreduce.am.job.node-blacklisting.ignore-threshold-node-percent: Default is 33%
  • mapreduce.job.reduce.slowstart.completedmaps: Default is 0.05
  • yarn.app.mapreduce.am.job.reduce.ramup.limit: Default is 0.5
  • yarn.app.mapreduce.am.job.reduce.preemption.limit: Default is 0.5
  • yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms: Default is 360000ms

ContainerLauncherRouter Init and Startup

 与ContrineAllocatorRouter类似,ContainerLaunerRouter 根据Job类型初始化,LocalContainerLauncher 或 ContainerLauncherImpl 对像;

CoutainerLauncherImpl Init and Startup


图 6-1
ContainerLauncherImpl 初始化时会读取以下配置信息:
  • yarn.app.mapreduce.am.containerlauncher.thread-count-limit: Default is: 500

JobHistoryEventHandler init and Startup


图 7-1
JobhistoryEventHadnler 初始化读取以下信息:
  • yarn.app.mapreduce.am.staging-dir: Default is: /tmp/hadoop-yarn/staging/<user>/.staging
  • mapreduce.jobhistory.intermediate-done-dir: 如果该 property没有配置,则读取;yarn.app.mapreduce.am.staging-dir,如果该property也没有配置则使用默认值:/tmp/hadoop-yarn/staging/history/done_intermediate/
  • yarn.app.mapreduce.am.history.max-unflushed-events:Default is 200
  • yarn.app.mapreduce.am.history.job-complete-unflushed-multiplier: Default is 30
  • yarn.app.mapreduce.am.history.complete-event-flush-timeout: default is 30000 ms
  • yarn.app.mapreduce.am.history.use-batched-flush.queue-size.threadhold: Defult is 50

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值