大白菜Yarn采用事件驱动的并发模型
来源:互联网 发布:c语言闰年计算方法 编辑:程序博客网 时间:2024/05/01 21:16
原文:大白菜Yarn采用事件驱动的并发模型
大白菜为了增大并发性,大白菜Yarn采用事件驱动的并发模型,将各种处理逻辑抽象成事件和调度器,将事件的处理过程用状态机表示。什么是状态机?
如果一个对象,其构成为若干个状态,以及触发这些状态发生相互转移的事件,那么此对象称之为状态机。
处理请求作为某种事件发送到系统中,由一个中央调度器传递给对应的事件调度器,进而对事件进行处理,处理完成之后再次发送给中央调度器,再进行处理,直至处理完成。
Yarn的资源管理模块ResourceManager,其核心构成就是四类这样的状态机(基于2.4版本),分别是:
(1)RMApp:用于维护一个Application的生命周期;
(2)RMAppAttempt:用于维护一次试探运行的生命周期;
(3)RMContainer:用于维护一个已分配的资源最小单位Container的生命周期;
(4)RMNode:用于维护一个NodeManager的生命周期;
以上四个状态机,以继承了EventHandler 的Interface的形式存在于Yarn源码的org.apache.hadoop.yarn.server.resourcemanager中。其具体实现类,则是对应的xxxImpl类。
提交到Yarn中的应用程序被称为Application,它可能会尝试运行多次,每次的尝试运行称为“Application Attempt”,如果一次尝试运行失败,则由RMApp创建另一个继续运行,直至达到失败次数的上限。Container是运行环境的抽象概念,无论是ApplicationMaster还是具体的每个Task都得运行在Container中。
2 RMApp状态机 此状态机的具体实现类为org.apache.hadoop.yarn.server.resourcemanager.rmapp. RMAppImpl。其内部记录了一个Application的所有状态RMAppState(共11种)、触发状态间转换的事件RMAppEvent(共14种)、Application的其他基本信息等。其功能就是接收其他对象发出的RMAppEventType类型的事件,然后根据当前状态和事件类型,将当前状态转移到另外一种状态,同时触发一种行为。
- 大白菜Yarn采用事件驱动的并发模型
- hadoop之yarn事件驱动模型
- YARN中MRAppMaster的事件驱动模型与状态机处理消息过程的分析
- nginx的事件驱动模型
- Android的事件驱动模型
- nodejs的事件驱动模型
- 服务器,并发,“事件驱动”的本质
- 基于事件驱动的并发编程
- nginx采用epoll的事件模型,为何效率高
- nginx采用epoll的事件模型,为何效率高
- javascript事件驱动模型的不完全剖析
- 浅析dbforms的事件驱动模型
- 关于XML文档模型的事件驱动
- 事件驱动的应用开发模型
- 事件驱动的HLog写入模型
- nginx服务器的事件驱动模型
- java 事件驱动模型
- 事件驱动模型
- c#中的流文件的编写 转自MSDN
- xx 2.0项目 软件开发代码泥团问题
- 网络配置yum源:为Redhat5配置网易的yum源
- UVa 1583 Digit Generator
- java collection
- 大白菜Yarn采用事件驱动的并发模型
- as CLICK和MOUSE_DOWN冲突的时候解决办法
- DMA分析之代码
- as mc 改变Y轴和Z轴的属性后需要还原的处理
- 选择与主见
- ARM时钟及电源管理
- fla文件中切记不能使用TLF文本
- fread和fwrite的使用举例
- 一切都是对象