千家信息网

storm和zookeeper中节点的关系是什么

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这期内容当中小编将会给大家带来有关storm和zookeeper中节点的关系是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、NimbusNimbus既需要在
千家信息网最后更新 2025年12月01日storm和zookeeper中节点的关系是什么

这期内容当中小编将会给大家带来有关storm和zookeeper中节点的关系是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。


一、Nimbus

Nimbus既需要在Zookeeper中创建元数据,也需要从Zookeeper中获取元数据。

如上图箭头1所示:

1、对于路径a,Nimbus只会创建路径,不会设置数据,数据是稍后由Worker设置的。

2、对于路基b和c,Nimbus在创建她们的时候就会设置数据。

3、路径a和b只有在提交新的Topology时才会创建,且b中的数据设置好以后就不会再变化;c在第一次为该Topology进行任务分配的时候会创建,若任务分配计划有变,Nimbus会更新它内容。

如上图箭头2所示:

1、Nimbus需要从路径a读取当前已经被分配的Worker的运行状态。根据该信息,Nimbus可以得知哪些Worker状态正常,哪些需要被重新调度。同时还会获取到该Worker上所有的Executor信息,这些信息会通过UI呈现给用户。

2、从路径b可以获取当前集群中所有Supervisor状态,通过这些信息可以得知哪些Supervisor上还有空闲资源可用,哪些Supervisor不再活跃,需要将已经分配到它的任务分配到其他节点上。

3、从路径c上可以获取当前所有的错误信息并通过UI展现给用户。

二、Supervisor

Supervisor也需要通过Zookeepr来创建和获取元数据。除此之外,Supervisor还通过监控指定的本地文件来监测由它启动的所有的Worker的运行状态。

1、箭头3表示Supervisor在Zookeeper中创建的路径是/storm/supervisor/。新节点加入时会在该路径下创建一个znode节点。值得注意的是,该节点是一个临时节点,一旦Supervisor与Zookeepr的连接超时或断开,该节点会被自动删除。该目录下的znode节点列表代表了目前活跃的Supervisor,这保证了Nimbus能够及时得知当前集群中机器的状态,这是Nimbus可以进行任务分配的基础,也是Storm具有容错性以及扩展性的基础。

2、箭头4表示Supervisor需要获取数据的路径是/storm/assignments/。这个路径是Nimbus写入的对Topology的任务分配信息,Supervisor从该路径可以获取到Nimbus分配给它的所有任务。Supervisor在本地保存了上次的分配信息,对比这两部分的信息可以得知分配信息是否有变化。若发生变化,则需要进行任务的移除和启动。

3、箭头9表示Supervisor会从LocalState中获取由它启动的所有Worker的心跳信息。Supervisor每隔一段时间检查一次这些心跳信息,如果发现某个Worker在这段时间内没有更新心跳信息,表明该Worker当前的运行状态出了问题。这时Supervisor会杀死这个Worker(Worker本质是一个进程),原本分配给这个Worker的任务就会被重新分配。

三、Worker

Worker也需要利用Zookeeper来创建和获取元数据,同时它还需要利用本地的文件来记录自己的心跳信息。

1、箭头5表示Worker在Zookeeper中创建的路径是/storm/workerbeats//node-port。在Worker启动时,将创建一个与其对应的znode节点,相当于对自身进行注册。需要注意的是,Nimbus在Topology被提交时只会创建路径/storm/workerbeats/,而不会设置数据,数据则等Worker启动之后由Worker创建。这样安排的目的之一是为了避免多个Worker同时创建路径时导致冲突。

2、箭头6表示Worker需要获取/storm/assignments/路径的数据,这里包含分配给它的任务信息。

3、箭头8表示Worker在LocalState中保存心跳信息。LocalState实际上将这些信息保存在本地文件中,Worker用这些信息与Supervisor保持心跳,每隔几秒钟需要更新一次心跳信息。因为Worker与Supervisor属于不同的进程,因此Storm采用本地文件的方式来传递心跳。

四、Executor

Executor只会利用Zookeeper来记录自己的运行错误信息。箭头7表示Executor在Zookeeper中创建的路径,每个Executor会在运行过程中记录发生的错误。

五、心跳维持

由上可知,Nimbus、Supervisor和Worker两两之间都要维持心跳信息,它们的心跳信息如下:

1、Nimbus和Supervisor之间通过/storm/supervisor/路径对应的数据进行心跳保持。该节点是临时节点,只要Supervisor死掉,对应路径的数据就会被删掉,Nimbus就会将原本分配给改Supervisor的任务重新分配。

2、Worker和Nimbus之间通过/storm/workerbeats//node-port路径中的数据进行心跳维持。Nimbus会每隔一段时间获取该路径下的数据,同时Nimbus还会在它的内存中保存上一次的信息。如果发现某个Worker的心跳信息有一段时间没有更新,就认为该worker已经死掉了,Nimbus会对任务进行重新分配,将分配到该Worker的任务分配给其他的Worker。

3、Worker与Supervisor之间通过本地文件(LocalState)进行心跳保持。

上述就是小编为大家分享的storm和zookeeper中节点的关系是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

信息 路径 数据 分配 节点 任务 箭头 状态 文件 运行 之间 会创 同时 时间 中创 更新 内容 错误 变化 上图 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 联想冷板式液冷服务器 关于软件开发的斗图 小学生网络安全小论文作文 上海造亿网络技术有限公司 淄博市高新区网络安全培训基地 教资数据库技术应用及其特点 义乌白帽子网络安全 部队征用网络技术员 笔记本无线服务器被禁用 未来教育数据库下载地址 利辛app软件开发公司服务至上 cs搜索不到旁边的服务器 数据库和网页空间 非学科类教育软件开发 上海hr软件开发 身边网络安全威胁的十个例子 无锡操作性能好服务器生产商 搭建服务器网络测试页面 长江航务局网络安全 火山软件开发平台使用 网络安全质量目标是什么 服务器切换ssl 无法访问 机场网络安全什么样的人才能保护 龙之谷什么服务器人多 数据库连接延迟无法登录 购买计算机网络安全设备 flume采集到数据库 广州凡传互联网科技有限公司 全球最大的网络技术公司 河北潮流软件开发价格服务标准
0