JStorm之Supervisor简介
2015-11-22 16:00
417 查看
一、简介
Supervisor是JStorm中的工作节点,类似于MR的TT,subscribe zookeeper的任务调度结果数据,根据任务调度情况启动/停止工作进程Worker。同时Supervisor需要定期向zookeeper写入活跃端口信息以便Nimbus监控。Supervisor不执行具体处理工作,所有的计算任务都交Worker完成。从整个架构上看,Supervisor处在整个JStorm三级管理架构的中间环节,辅助管理任务调度和资源管理工作。
二、架构
1.Supervisor
Supervisor单节点架构如上图所示,初始化时启动进程Supervisor,根据Nimbus分配的任务情况触发启动/停用Worker JVM进程,其中每个Worker进程启动一个或多个Task线程,其中Task须同属单个Topology。从整个Supervisor节点来看运行多个JVM进程,包括一个Supervisor进程和一个或多个Worker进程。
不同角色状态通过不同的方式维护。其中Task通过hb直接将包括时间信息和当前Task的统计信息写到zookeeper;Worker定期将包括Topology id,端口,Task id集合及当前时间写入本地;Supervisor定期将包括时间及节点资源(端口集合)写到zookeeper,同时从zookeeper读取任务调度结果,根据结果启动/停用Worker进程。
2.Worker
在Worker JVM进程内部,除了相互独立的Task线程外,Task线程会共享数据收发和节点之间连接管理等Worker进程内的公共资源,如图所示。其中:
VirtualPort:数据接收线程;
KeyoTupleSerialize:Tuple数据序列化;
TransferQueue:数据发送管道;
DrainerRunnable:数据发送线程;
RefreshConnections:节点之间连接管理线程。
相关文章推荐
- JStorm之Nimbus简介
- 浅谈JavaScript中的伪类 (李睿豪)
- javascript冒泡排序
- JavaScript调试的那些事
- js 字符串转日期
- NSJSONSerialization
- volley获取json数据及中文乱码问题的解决
- JStorm介绍
- jsp语法
- JavaScript用法详解
- jstorm
- JAVASCRIPT实现简单计算器
- js 右侧浮动层效果实现代码(跟随滚动)
- jsp编码及url请求中文乱码、图片上传文件名乱码
- jsp中文乱码
- JSON需要的jar包和和String类型转JSON
- javascript--自动填充 与 多选级联
- iOS引入JavaScriptCore引擎框架(二)
- JavaScript之事件处理详解
- Jsoup选择器选择的class有多个属性的写法