yarn事件库
来源:互联网 发布:vb中borderstyle属性 编辑:程序博客网 时间:2024/05/14 16:04
yarn采用事件驱动的并发模型增强并发,使得YARN 具有低耦合、高内聚的特点,便于维护。
整个处理过程大致为:处理请求会作为事件进入系统,由中央异步调度器(Async-
Dispatcher)负责传递给相应事件调度器(Event Handler)。该事件调度器可能将该事件转发给
另外一个事件调度器,也可能交给一个带有有限状态机的事件处理器,其处理结果也以事
件的形式输出给中央异步调度器。而新的事件会再次被中央异步调度器转发给下一个事件
调度器,直至处理完成(达到终止条件)。
源代码位于hadoop-yarn-project/hadoop-yarn/hadoop-yarncommon/src/main/java 下的org.apache.hadoop.yarn.event下
- package com.myhadoop;
- import java.util.UUID;
- import org.apache.hadoop.conf.Configuration;
- import org.apache.hadoop.yarn.event.AbstractEvent;
- import org.apache.hadoop.yarn.event.AsyncDispatcher;
- import org.apache.hadoop.yarn.event.EventHandler;
- public class EventTest {
- private static enum TaskEventType {
- T_NEW, T_START, T_SUCCESS
- }
- private static class TaskEvent extends AbstractEvent<TaskEventType> {
- private String taskID; //Task ID
- public TaskEvent(String taskID, TaskEventType type) {
- super(type);
- this.taskID = taskID;
- }
- public String getTaskID() {
- return taskID;
- }
- }
- private static class TaskEventDispatcher implements EventHandler<TaskEvent> {
- @SuppressWarnings("unchecked")
- @Override
- public void handle(TaskEvent event) {
- if (event.getType() == TaskEventType.T_NEW) {
- System.out.println("Receive T_NEW event of task " + event.getTaskID());
- dispatcher.getEventHandler().handle(new TaskEvent(event.getTaskID(), TaskEventType.T_START));
- } else if (event.getType() == TaskEventType.T_START) {
- System.out.println("Receive T_START event of task " + event.getTaskID());
- dispatcher.getEventHandler().handle(new TaskEvent(event.getTaskID(), TaskEventType.T_SUCCESS));
- } else if (event.getType() == TaskEventType.T_SUCCESS) {
- System.out.println("Receive T_SUCCESS event of task " + event.getTaskID());
- dispatcher.stop();
- }
- }
- }
- private static AsyncDispatcher dispatcher = new AsyncDispatcher();// 定义一个中央异步调度器
- static {
- dispatcher.init(new Configuration());
- dispatcher.register(TaskEventType.class, new TaskEventDispatcher());
- dispatcher.start();
- }
- @SuppressWarnings("unchecked")
- public static void main(String[] args) {
- dispatcher.getEventHandler().handle(new TaskEvent(UUID.randomUUID().toString(), TaskEventType.T_NEW));
- }
- }
0 0
- YARN事件库
- Hadoop YARN事件库
- yarn事件库
- YARN 服务库与事件库
- YARN的服务库和事件库
- YARN服务库和事件库的使用方法(1)
- YARN 的服务库和事件库及其使用
- Hadoop2源码分析-YARN 的服务库和事件库
- Hadoop源码解析之YARN的服务库与事件库
- hadoop之yarn事件驱动模型
- Hadoop Yarn事件处理框架源码分析
- YARN
- yarn
- yarn
- yarn
- yarn
- YARN
- YARN
- 两种增长曲线
- Android中Json数据读取与创建的方法
- 144. Binary Tree Preorder Traversal
- 【LeetCode】4sum k-Sum 题解报告及总结
- 非中序遍历思路把二元查找树转变成排序的双向链表的分析
- yarn事件库
- 形如Nov 2, 2016 7:25:43 PM的字符串如何转换成Date
- cas简介
- XTOJ 1245 Hamiltonian Path【伪最短路,水题】
- nyoj113字符串替换(利用string类的简单方法)
- Codeforces Round #377 D. Exams (二分)
- windows下将php与mysql结合
- Eclipse导入Github上的Robotium源码进行代码分析的步骤
- hihocoder 1369 网络流之最大流