Storm系列(九)架构分析之Supervisor-同步Nimbus的事件线程

17 篇文章 1 订阅
订阅专栏
Supervisor由三个线程组成,一个计时器线程和两个事件线程.

  • 计时器线程负责维持心跳已经更新Zookeeper中的状态,还负责每隔一定的时间将事件线程需要执行的事件添加到其对应的队列中.
  • 两个事件线程分别负责与Nimbus同步任务和根据任务变化同步管理Worker进程.

相关数据结构图:

 supervisor

 

同步Nimbus的事件线程

执行流程图:

image

 

方法原型:

(defn mk-synchronize-supervisor [supervisor sync-processes event-manager process-event-manager])

参数说明:

Supervisor:supervisor-data对象。

Sync-processes:mk-supervisor中定义的用于同步当前supervisor启动的Worker的方法。

Event-manager:mk-supervisor中定义的用于运行mk-synchronize-supervisor方法的线程。

Process-event-manager:mk-supervisor中定义的运行sync-processes方法的线程。

方法说明:

  1. 获取supervisor中的配置信息,storm-local-cluster,isupervisor和local-state对象.
  2. 定义sync-callback方法,将mk-synchronize-supervisor方法再次加入到Nimbus任务的事件现场中执行,该方法用来在进行Zookeeper操作时设置回调方法,当Zookeeper中的内容发送变化时也会调用该方法.
  3. 调用read-storm-code-locations方法获取<storm-id,master-code-location>集合保存到storm-code-map.
  4. 调用read-downloaded-storm-ids方法获取当前已经下载Topology对应的storm id信息.
  5. 调用read-assignments方法获取分配给当前Supervisor的任务信息,返回<poer,LocalAssignment>集合保存给new-assignment.
  6. 调用assigned-storm-ids-from-port-assignments获取new-assignment中的storm-id,保存到assigned-storm-ids.
  7. 获取local-state中保存的LS-LOCAL-ASSIGNMENTS信息做为existing-assignment,<port,Assignment>.
  8. 调用download-storm-code下载当前已经分配给该Topology但还没下载到本地的Topology信息.
  9. 计算出属于existing-assignment但不属于new-assignment的端口信息,调用isupervisor的killedWorker方法关闭这些端口。
  10. 调用isupervisor的assigned方法设置新分配的端口信息.
  11. 更新local-state中保存的LS_LOCAL_ASSIGNMENT信息,设置为new-assignment.
  12. 更新supervisor-data中的curr-assignment信息,设置为new-assignment.
  13. 移除本地已下载但已不在assigned-storm-ids中的Topology.
  14. 将sync-process方法添加到process-event-manager中执行.
storm-0.8.2源码分析nimbus启动
chlaws的专栏
08-29 6926
nimbus启动 脚本启动逻辑          通过bin/stormnimbus会启动nimbus进程,类似hadoop的jobtracker。 bin/storm是一个python写的脚本,支持jar,kill,nimbus,supervisor,ui,drpc等等命令。 python的入口函数如下 def main():    if len(sys.argv)       
3.Storm搭建及深入
weixin_50722238的博客
10-18 296
Storm搭建及深入 nimbussupervisor启动后自动消失。 Storm启动和关闭 storm架构 hadoop vs storm storm容错
inotify+rsync+supervisor实现服务器文件同步详细说明
08-09
同步方案:采用inotify监听文件变化,触发rsync实时同步,并且用supervisor监控inotify进程,莫明死掉后会立即重新启动。 需求:adminweb上的/data/www/user下的代码要同步到web1\2\3上 172.40.0.203:web1 172.40.0.204:web2 172.40.0.205:web3
Storm系列(十一)架构分析Supervisor-管理Worker进程的事件线程
weixin_38170065的博客
10-05 156
处理流程: 方法原型: (defn sync-processes [supervisor]) 函数说明: Supervisor是一个supervisor-data对象. 从local-state中获取LS_LOCAL_ASSIGNMENTS集合<port,Assignment>集合,保存到assigned-executors。 调用re...
storm启动supervisor源码分析-supervisor.clj
weixin_30780649的博客
09-24 187
supervisorstorm集群重要组成部分,supervisor主要负责管理各个"工作节点"。supervisor与zookeeper进行通信,通过zookeeper的"watch机制"可以感知到是否有新的任务需要认领或哪些任务被重新分配。我们可以通用执行bin/storm supervisor >/dev/null 2>&1 &来启动supervisor。bin...
聊聊storm supervisor的启动
weixin_33910759的博客
10-12 358
为什么80%的码农都做不了架构师?>>> ...
Storm 源码分析
05-06
- **Nimbus**:NimbusStorm集群的核心组件之一,负责整个集群的管理和协调工作,包括任务调度、故障恢复等。Nimbus通过Zookeeper来实现状态同步和集群协调。 - **Supervisor**:Supervisor运行在每个Worker节点上...
storm原理分析
03-04
### Storm原理分析 #### 一、Storm基本结构 Apache Storm 是一个开源的分布式实时计算系统,主要用于处理流式数据。Storm 提供了一种简单而强大的模型来定义并行计算过程,使得用户能够轻松地处理无限的数据流。...
storm集群的搭建-java示例代码.zip
最新发布
11-08
5. **启动Storm**:在Nimbus节点上启动`bin/storm nimbus`,在其他Supervisor节点上启动`bin/storm supervisor`。这些命令会启动Storm的守护进程。 6. **提交拓扑**:编写Java代码实现Spout和Bolt,构建Storm拓扑。...
Storm源码细读——Supervisor启动
Stiga Huang的专栏
09-10 778
Supervisor进程管理框架-总结、提炼和实践(190508更新)
EsLinuxQt的博客
05-05 714
Supervisor总览 我使用的场景 Supervisor框架图解 Supervisor是一个典型的基于客户端、服务器的进程管理框架。supervisord是一个服务(功能非常强大),supervisorctl是一个客户端程序,方便本地或远程通过XML-RPC和supervisord服务进行通信从而在整体上实现supervisor提供的进程管理服务。 super...
【流式计算】Twitter Storm源代码分析Nimbus/Supervisor本地目录结构
sunxinhere的专栏
09-10 2345
作者: xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址: http://xumingming.sinaapp.com/483/twitter-storm-code-analysis-local-dir/   我们知道,storm集群里面工作机器分为两种一种是nimbus, 一种是supervisor, 他们通过zookeeper来进
在线聊天的总体架构与工具介绍:Flask web、Redis、Gunicorn服务组件、Supervisor服务监控器、Neo4j图数据库
あずにゃん梓喵的博客
07-16 1017
日萌社 人工智能AI:Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战(不定时更新) 2.1 在线医生的总体架构 学习目标: 了解在线医生项目的总体架构 项目整体架构图: 架构分析: 整个项目分为: 在线部分和离线部分 在线部分包括: werobot服务模块, 主要逻辑服务模块, 句子相关模型服务模块, 会话管理模块(redis), 图数据库模块以及规则对话/Unit模块. 离线部分包括: 结构与非结构化数据采集模块, N.
Supervisor(一)
siwujidan_77的博客
10-28 323
2021SC@SDUSC 首先,我们再来看一下supervisor的工作: Storm将每个节点分为主控节点和工作节点两种,其中主控节点只有一个,工作节点可以有多个。 每个工作节点运行Supervisor守护进程,负责监听工作节点上已经分配的主机作业,启动和停止Nimbus已经分配的工作进程。 supervisor会定时从zookeeper获取拓补信息topologies、任务分配信息assignments及各类心跳信息,以此为依据进行任务分配。 在supervisor同步时,会根据新的任务分配情
stormsupervisor, task, worker, spout, bolt之间的关系
疯狂的菠菜
03-04 483
一个storm topology运行起来之后, 会在supervisor 机器上启动一些进程来运行spout和bolt实例. 如果一个topology里面一共有一个spout, 一个bolt。 其中spout的parallelism是2, bolt的parallelism是4, 那么我们可以把这个topology的总工作量看成是6, 那么一共有6个task,那么/tasks/{topolog...
在Ubuntu15.10下安装Storm集群(一个机器上运行NimbusSupervisor 适合初学者)
weixin_30593261的博客
01-15 102
1.下载所需的资源 jdk-8u65-linux-x64.tar.gz zeromq-4.1.4.tar.gz jzmq-master.zip zookeeper-3.5.1-alpha.tar.gz apache-storm-0.10.0.tar.gz 2.安装jdk 我们打算把jdk安装在/usr/lib/jvm中;首先把Windows上下载好的jdk包复制到Ub...
分布式实时计算—Storm—基础介绍
sanmi8276的博客
02-12 889
一、概念 Storm是一个免费并开源的分布式实时计算系统。利用Storm可以很容易做到可靠地处理无限的 数据流,像Hadoop批量处理大数据一样,Storm可以实时处理数据。 二、集群架构 27.1.1.1. Nimbus(master-代码分发给Supervisor) Storm集群的Master节点,负责分发用户代码,指派给具体的Supervisor节点上的Worker节 点,去运行Topology对应的组件(Spout/Bolt)的Task。 ...
写文章

热门文章

  • Prometheus源码分析(三)Prometheus常用服务架构 5907
  • Prometheus源码分析(一)编译安装及命令行参数说明 5551
  • Prometheus源码分析(二)配置文件说明 5202
  • Prometheus源码分析(四)Prometheus启动过程 2045
  • Docker系列(六)路由打通网络示例 1634

分类专栏

  • Spark 10篇
  • Hadoop 3篇
  • 开源测试工具 2篇
  • 转载文章 1篇
  • Prometheus 4篇
  • Databus
  • 数据结构/算法 5篇
  • Docker 8篇
  • Esper 13篇
  • Storm 17篇
  • Kafka 2篇
  • Scala 4篇
  • Zookeeper 2篇
  • Linux 3篇
  • Spring 2篇
  • Android 1篇

最新评论

  • Prometheus源码分析(四)Prometheus启动过程

    sdsd_54yjxsd: 帮助很大,赞!

  • Prometheus源码分析(三)Prometheus常用服务架构

    sdsd_54yjxsd: 这是配置文件的分析吧

  • Esper系列(一)初探

    JMacro_H: 请问http输入适配器怎么实现?

  • Prometheus源码分析(三)Prometheus常用服务架构

    jianyuanPC: 没必要自己实现一个pushGateway,prometheus自带了pushGateway服务组件,job名称的指定通过http发送给pushGateway时指定

  • Prometheus源码分析(三)Prometheus常用服务架构

    subwen: 大神,如何实现一个pushGateway呢,这个job如何配置 默认的job可以吗? 运行的时候报错,找不到路径 404 http://127.0.0.1:9091/metrics/job/my_batch_job

大家在看

  • 问:数据库并发控制→隔离级别
  • 程序员·买房·留在一线城市 319
  • Golang | Leetcode Golang题解之第503题下一个更大元素II
  • C++ -stack、queue
  • 数据处理和分析之数据聚类:K-means聚类:K-means算法原理与应用 1219

最新文章

  • Prometheus源码分析(四)Prometheus启动过程
  • 数据结构(五)位图算法
  • Spark系列(十)TaskSchedule工作原理
2017年1篇
2016年79篇
2014年4篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家广州仿铜玻璃钢雕塑价格人物玻璃钢动物雕塑供应商天长中式玻璃钢雕塑中卫玻璃钢雕塑工程云浮人物玻璃钢卡通雕塑品牌玻璃钢雕塑费用宿州动物玻璃钢雕塑安装黄色斜纹状玻璃钢花盆新密景观园林玻璃钢人物雕塑保定玻璃钢草皮动物雕塑玻璃钢雕塑模具制作技术重庆户内玻璃钢雕塑设计深圳酒店玻璃钢花盆大同玻璃钢雕塑公司户外玻璃钢人物雕塑服务电话玻璃钢雕塑 有骨架吗揭阳玻璃钢动物雕塑服务电话固原玻璃钢景观雕塑经验丰富玻璃钢雕塑熊珠海仿真玻璃钢卡通雕塑辽宁商场创意商业美陈作品青岛周年庆典商场美陈杭州抽象玻璃钢雕塑订做价格周口定制玻璃钢雕塑新款玻璃钢卡通雕塑厂家鹿玻璃钢动物雕塑春节商场专柜美陈玻璃钢花盆展示人物雕塑玻璃钢黄飞鸿雕塑玻璃钢雕塑巧克力摆件香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化