Hadoop 0.23 状态机框架

2019-03-28 13:17|来源: 网络

Hadoop 0.23中使用了基于事件驱动机制的异步编程模型。每个对象都是一个有限状态机,有相应的事件处理器(EventHandler),处理器处理对应的事件类型。事件处理后,对象将从一个状态变化到另一个状态。

以Application对象为例,相关类分别为:

状态类:ApplicationState

处理器类:Application

事件类型类:ApplicationEventType

事件类:ApplicationEvent及子类

其状态机如下图:

Hadoop 0.23 状态机框架

状态机框架

框架中的泛型

OPERAND

表示状态机的操作对象,如Application对象。

STATE

表示对象的状态,如ApplicationState代表的相关状态。

EVENTTYPE

表示需要处理的事件类型,如ApplicationEventType代表的相关类型。

EVENT

表示具体事件对象,如ApplicationEvent对象。

StateMachine

StateMachine<STATE extends Enum<STATE>,EVENTTYPEextends Enum<EVENTTYPE>, EVENT>

主要方法:

public STATEgetCurrentState();

获取当前状态

public STATEdoTransition(EVENTTYPE eventType, EVENT event)

根据事件类型和事件对象进行状态迁移。

StateMachineFactory

StateMachineFactory <OPERAND,STATE extends Enum<STATE>, EVENTTYPEextends Enum<EVENTTYPE>, EVENT>

状态机框架的实现基本集中在这个类里面。

相关问答

更多
  • MVC只是一种推荐使用的非常优秀的设计模式,SSH框架则是对MVC模式的一种具体实现。SSH也不是完全实现MVC,只是提供了一个实现MVC的便捷的框架,而框架说白了就是为软件提供了一个可复用的架构,省去很多重复的工作,框架还提供很多功能你可以慢慢挖掘。可以说MVC只是一种设计思想,SSH框架就是帮助你实现MVC而提供的一些通用的类库和工具以及一些规范和标准。
  • 中国移动的信令平台也用了Hadoop技术。目前已经在江苏省上线的Mc+Abis口信令共享平台,就是由珠海世纪鼎利承建的基于Hadoop框架的云平台。 事实上,只要满足:海量数据、一次写入多次读取、非高实时性要求的场景,都适合用hadoop处理。
  • 我们已经为AWS(Amazon Web Services)中运行的工作流程解决了存储在S3中的数据的问题。 我们的设置: 数据存储:AWS S3 数据摄取机制:Flume 工作流程管理:Oozie 存储文件状态:MySQL 问题: 我们使用Flume将数据提取到Amazon S3中。 所有摄取的数据都在同一个文件夹中(S3是一个键/值存储,没有文件夹的概念。这里的文件夹意味着,所有的数据都有相同的前缀。例如/tmp/1.txt,/tmp/2.txt等这里/ tmp /是键前缀)。 我们有一个ETL工作流程, ...
  • 您需要为openCV安装所需的包。 这篇文章介绍如何安装openCV: http : //www.samontab.com/web/2012/06/installing-opencv-2-4-1-ubuntu-12-04-lts/ 您需要的是以下命令: sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python- ...
  • 您可以查看此项目: Hue 代码可以从github Hue下载。 You may check to see this project: Hue Code can be downloaded from github Hue.
  • 我认为这会帮助你更好地理解Spark和Haddop之间的关系: Hadoop本质上是一个分布式数据基础架构:它在大量商品服务器中的多个节点上分发海量数据集合,这意味着您不需要购买和维护昂贵的定制硬件。 它还对这些数据进行索引和跟踪,使大数据处理和分析能够比以前更有效。 另一方面,Spark是一种数据处理工具,可以对这些分布式数据集进行操作; 它不会做分布式存储。 欲了解更多信息,请阅读。 I think this will help you understand better the relation be ...
  • 有一些活跃的发布系列。 1.x版本系列是0.20版本系列的延续。 在0.23释放后几周,0.20分支(以前称为0.20.205)重新编号为1.0。 在0.20.205和1.0之间几乎没有功能差异。 这只是一个重新编号。 0.23包括几个主要的新功能,包括一个名为MapReduce 2的新MapReduce运行时,它在一个名为YARN(Yet Another Resource Negotiator)的新系统上实现,它是一个用于运行分布式应用程序的通用资源管理系统。 同样,2.x版本是0.23版本系列的延续。 ...