Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程
来源:互联网 发布:lol末日人工智能奖励 编辑:程序博客网 时间:2024/05/15 00:01
处理流程:
方法原型:
(defn sync-processes [supervisor])
函数说明:
Supervisor是一个supervisor-data对象.
- 从local-state中获取LS_LOCAL_ASSIGNMENTS集合<port,Assignment>集合,保存到assigned-executors。
- 调用read-allocated-workers获取当前已经分配的Worker信息,<worker-id,<worker state,worker heartbeat>>集合,保存到allocated,其中记录了与当前分配的Worker相对应的状态和心态信息。
- 从allocated中过滤,保留其中worker-state为:valid的Worker,保存到keepers。
- 从keepers数据项中的心跳信息中获取其所对应的端口信息,保存到keep-ports.
- 根据assigned-executor和keep-ports,确定需重新分配的executor信息,返回<port,Assignment>集合,保存到reassign-executors.
- 为reassign-executors中的每个端口创建一个新的worker-id,返回<port,worker-id> 集合,保存到new-worker-ids.
- 对allocated集合中worker-state不为:valid的Worker调用shutdown-worker方法 关闭。
- 为new-worker-ids集合中的每个worker-id创建pid文件夹,路径为STORM_LOCAL_DIR/workers/<worker-id>/pids/
- 更新local-state中存储的LS_APPROVED-WORKERS信息。 获取当前local-state中存储的LS-APPROVED-WORKERS信息,再根据 将keepers过滤出有效的Worker信息最后与new-worker-ids合并进行保存到local-state。
- 调用launch-worker方法启动 Worker,返回启动的Worker的worker-id,最后调用wait-for-workers-launch方法等待这些Worker启动起来.
Supervisor启动流程
0 0
- Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程
- Storm系列(九)架构分析之Supervisor-同步Nimbus的事件线程
- Storm系列(十二)架构分析之Worker-心跳信息处理
- Storm系列(十三)架构分析之Worker-维护ZMQ连接
- Storm上的Nimbus、Supervisor以及Worker之间的关系
- Storm上的Nimbus、Supervisor以及Worker之间的关系
- Storm上的Nimbus、Supervisor以及Worker之间的关系
- storm中supervisor, task, worker, spout, bolt之间的关系
- Nginx源码分析-进程管理之worker进程
- Nginx源码分析-进程管理之worker进程
- Apache Storm 学习:Supervisor,Worker,Executor,Task
- twitter storm 源码走读之5 -- worker进程内部消息传递处理和数据结构分析
- nginx进程管理之worker进程
- Storm系列(五)架构分析之Nimbus启动过程
- Storm系列(六)架构分析之Scheduler-调度器[EventScheduler]
- Storm系列(七)架构分析之Scheduler-调度器[DefaultScheduler]
- Storm系列(十五)架构分析之Executor-Spout
- Storm系列(十六)架构分析之Executor-Bolt
- Storm系列(九)架构分析之Supervisor-同步Nimbus的事件线程
- Esper系列(二)时间窗口、长度窗口、cast、注解、自定义函数、静态方法
- lucene多种查询方式
- eclipse中variable references non-existion resource可能原因及解决方案
- Storm系列(十)聚流示例
- Storm系列(十一)架构分析之Supervisor-管理Worker进程的事件线程
- Storm系列(十二)架构分析之Worker-心跳信息处理
- 实验9 问题 D: 编写函数:字符串的复制 之二 (Append Code)
- Bugly错误监测Android SDK接入
- OpenGL管线(用经典管线代说着色器内部)
- Storm系列(十三)架构分析之Worker-维护ZMQ连接
- javascript内置对象数组Array和字符串string的一些方法
- Ganglia系列(一)安装
- 软件测试--APP测试注意