ResourceManager中的对象均被封装成服务和事件处理器,其中,封装成服务是为了统一管理,而所有事件处理器处理来自中央总调度器分配的事件,总调度器将各个服务发送出来的事件按照事件类型分配给对应的事件处理器,如此循环,构成了ResourceManager的整体架构。

  • RM中的服务

YARN采用了服务模型,它将各种对象服务化,以便于统一管理(统一启动、关闭等)。YARN中将服务分为两种:单一服务和组合服务,组合服务是将多个单个服务组合在一起。

单一服务需继承AbstractService抽象类,而组合服务需继承CompositeService抽象类。在ResourceManager中,AdminService和ClientRMService为单一服务,而ResourceManager则为组合服务。

  • RM中的事件处理器

围绕中央调度器AsyncDispatcher,ResourceManager共有8种事件调度器,它们处理的事件类型如图所示。

每个对象 均可能触发一定的事件,这些事件被统一传递给AsyncDispatcher,AsyncDispatcher收到事件后将之放到一个事件队列中,异步进行处理,比如,如果是AMLauncherEvent类型的事件,则分配给事件处理器ApplicationMasterLauncher,如果是SchedulerEvent类型事件,则分配给事件处理器ResourceScheduler处理。

原创文章,转载请注明: 转载自董的博客

本文链接地址: YARN/MRv2 Resource Manager深入剖析—服务与事件处理器

微信公众号:hadoop-123,专注于大数据技术分享,欢迎加入!

说点什么

avatar
  Subscribe  
提醒