iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Storm在zookeeper上的目录结构是怎样的
  • 461
分享到

Storm在zookeeper上的目录结构是怎样的

zookeeperstorm 2023-05-31 00:05:49 461人浏览 八月长安
摘要

这篇文章主要介绍了StORM在ZooKeeper上的目录结构是怎样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Storm的所有的状态信息都保存在Zookeeper里面,n

这篇文章主要介绍了StORMZooKeeper上的目录结构是怎样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

Storm的所有的状态信息都保存在Zookeeper里面,nimbus通过在zookeeper上面写状态信息来分配任务:

使得nimbus可以监控整个storm集群的状态,从而可以重启一些挂掉的task。 ZooKeeper使得整个storm集群十分的健壮-—任何一台工作机器挂掉都没有关系,只要重启然后从zookeeper上面重新获取状态信息就可以了。那Storm在zookeeper里面存储了哪些状态呢?在James Xu的文章中有所涉及,但是该文章讲述的已经过时了。本文主要介绍Storm在ZooKeeper中保存的数据目录结构,源代码主要是:backtype.storm.cluster。

Zookeeper的操作

(defprotocol ClusterState (set-ephemeral-node [this path data]) (delete-node [this path]) (create-sequential [this path data]) (set-data [this path data]) ;; if node does not exist, create persistent with this data  (get-data [this path watch?]) (get-children [this path watch?]) (mkdirs [this path]) (close [this]) (reGISter [this callback]) (unregister [this id]) )

Storm使用Zookeeper的操作

(defprotocol StormClusterState (assignments [this callback]) (assignment-info [this storm-id callback]) (active-storms [this]) (storm-base [this storm-id callback]) (get-worker-heartbeat [this storm-id node port]) (executor-beats [this storm-id executor->node+port]) (supervisors [this callback]) (supervisor-info [this supervisor-id]) ;; returns nil if doesn't exist (setup-heartbeats! [this storm-id]) (teardown-heartbeats! [this storm-id]) (teardown-topology-errors! [this storm-id]) (heartbeat-storms [this]) (error-topologies [this]) (worker-heartbeat! [this storm-id node port info]) (remove-worker-heartbeat! [this storm-id node port]) (supervisor-heartbeat! [this supervisor-id info]) (activate-storm! [this storm-id storm-base]) (update-storm! [this storm-id new-elems]) (remove-storm-base! [this storm-id]) (set-assignment! [this storm-id info]) (remove-storm! [this storm-id]) (report-error [this storm-id task-id error]) (errors [this storm-id task-id]) (disconnect [this]) )

Storm中在Zookeeper中存储的目录

(def ASSIGNMENTS-ROOT "assignments")(def CODE-ROOT "code")(def STORMS-ROOT "storms")(def SUPERVISORS-ROOT "supervisors")(def WORKERBEATS-ROOT "workerbeats")(def ERRORS-ROOT "errors")(def ASSIGNMENTS-SUBTREE (str "/" ASSIGNMENTS-ROOT))(def STORMS-SUBTREE (str "/" STORMS-ROOT))(def SUPERVISORS-SUBTREE (str "/" SUPERVISORS-ROOT))(def WORKERBEATS-SUBTREE (str "/" WORKERBEATS-ROOT))(def ERRORS-SUBTREE (str "/" ERRORS-ROOT))

/assignments -> 任务分配信息
2./storms -> 正在运行的topology的ID
3./supervisors -> 所有的Supervisors的心跳信息
4./workerbeats -> 所有的Worker的心跳
5./errors -> 产生的出错信息

结构图

/-{storm-zk-root}      -- storm在zookeeper上的根目录(默认为/storm) | |-/assignments      -- topology的任务分配信息 |  | |  |-/{topology-id}   -- 这个目录保存的是每个topology的assignments信息包括:对应的nimbus上 |             -- 的代码目录,所有task的启动时间,每个task与机器、端口的映射。操作为 |             -- (assignments)来获取所有assignments的值;以及(assignment-info storm-id) |             -- 来得到给定的storm-id对应的AssignmentInfo信息 |             -- 在AssignmentInfo中存储的内容有: |             -- :executor->node+port :executor->start-time-secs :node->host |             -- 具体定义在common.clj中的 |             -- (defrecord Assignment[master-code-dir node->host executor->node+port                  executor->start-time-secs])             | |-/storms         -- 这个目录保存所有正在运行的topology的id |  | |  | |  |-/{topology-id}   -- 这个文件保存这个topology的一些信息,包括topology的名字,topology开始运行 |             -- 的时间以及这个topology的状态。操作(active-storms),获得当前路径活跃的下 |             -- topology数据。保存的内容参考类StormBase;(storm-base storm-id)得到给定的 |             -- storm-id下的StormBase数据,具体定义在common.clj中的 |   -- (defrecord StormBase [storm-name launch-time-secs status num-workers component->executors]) | |-/supervisors      -- 这个目录保存所有的supervisor的心跳信息 |  |             |  | |  |-/{supervisor-id}  -- 这个文件保存supervisor的心跳信息包括:心跳时间,主机名,这个supervisor上 |             -- worker的端口号,运行时间(具体看SupervisorInfo类)。操作(supervisors)得到 |             -- 所有的supervisors节点;(supervisor-info supervisor-id)得到给定的 |             -- supervisor-id对应的SupervisorInfo信息;具体定义在common.clj中的 |               |    -- (defrecord SupervisorInfo [time-secs hostname assignment-id used-ports meta scheduler-meta       uptime-secs]) | |-/workerbeats          -- 所有worker的心跳 |  | |  |-/{topology-id}       -- 这个目录保存这个topology的所有的worker的心跳信息 |    | |    |-/{supervisorId-port}  -- worker的心跳信息,包括心跳的时间,worker运行时间以及一些统计信息 |                     |                 -- 操作(heartbeat-storms)得到所有有心跳数据的topology, |                 -- (get-worker-heartbeat storm-id node port)得到具体一个topology下 |                 -- 的某个worker(node:port)的心跳状况, |             -- (executor-beats storm-id executor->node+port)得到一个executor的心跳状况 | |-/errors         -- 所有产生的error信息 | |-/{topology-id}      -- 这个目录保存这个topology下面的错误信息。操作(error-topologies)得到出错   |           -- 的topology;(errors storm-id component-id)得到   |           -- 给定的storm-id component-id下的出错信息   |-/{component-id}

感谢你能够认真阅读完这篇文章,希望小编分享的“Storm在zookeeper上的目录结构是怎样的”这篇文章对大家有帮助,同时也希望大家多多支持编程网,关注编程网精选频道,更多相关知识等着你来学习!

--结束END--

本文标题: Storm在zookeeper上的目录结构是怎样的

本文链接: https://www.lsjlt.com/news/222541.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Storm在zookeeper上的目录结构是怎样的
    这篇文章主要介绍了Storm在zookeeper上的目录结构是怎样的,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Storm的所有的状态信息都保存在Zookeeper里面,n...
    99+
    2023-05-31
    zookeeper storm
  • Linux目录结构是怎样的
    今天小编给大家分享一下Linux目录结构是怎样的的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。使用 Linux 时,通过命令...
    99+
    2023-06-28
  • jboss目录结构是怎么样的
    这篇文章给大家分享的是有关jboss目录结构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。JBoss的目录:  bin           &...
    99+
    2023-06-03
  • linux系统目录结构是怎样的
    小编给大家分享一下linux系统目录结构是怎样的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!当在使用Linux的时候,如果您通过ls &nda...
    99+
    2023-06-13
  • Linux目录结构具体是怎样的
    今天就跟大家聊聊有关Linux目录结构具体是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Linux目录结构==================================...
    99+
    2023-06-04
  • mysql数据目录结构是怎么样的
    mysql数据目录结构是怎么样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 mysql数据目...
    99+
    2022-10-19
  • Linux系统目录结构是怎样的呢
    今天就跟大家聊聊有关Linux系统目录结构是怎样的呢,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。登录系统后,在当前命令窗口下输入命令: ls /你会看到如下图所...
    99+
    2023-06-28
  • pg源码src/backend/目录下的结构是怎样的
    pg源码src/backend/目录下的结构是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1.   ...
    99+
    2022-10-19
  • Linux中文件系统的目录结构是怎样的
    这篇文章主要介绍“Linux中文件系统的目录结构是怎样的”,在日常操作中,相信很多人在Linux中文件系统的目录结构是怎样的问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux中文件系统的目录结构是怎样的...
    99+
    2023-06-12
  • Linux系统目录架构是怎样的
    本文小编为大家详细介绍“Linux系统目录架构是怎样的”,内容详细,步骤清晰,细节处理妥当,希望这篇“Linux系统目录架构是怎样的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。文件系统为一个倒转的单根树状结构根...
    99+
    2023-06-06
  • HTML5结构是怎样的
    这篇文章将为大家详细讲解有关HTML5结构是怎样的,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   由于缺少结构,即使是形式良好的 HTML...
    99+
    2022-10-19
  • Oracle结构是怎样的
    本篇内容主要讲解“Oracle结构是怎样的”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Oracle结构是怎样的”吧! 一、数据库体系结构概况 Oracle...
    99+
    2022-10-19
  • Bootstrap结构是怎样的
    本篇内容介绍了“Bootstrap结构是怎样的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一.Bootstrap介绍  ...
    99+
    2023-06-27
  • linux结构是怎样的
    本文小编为大家详细介绍“linux结构是怎样的”,内容详细,步骤清晰,细节处理妥当,希望这篇“linux结构是怎样的”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。linux系统的结构是四个部分:1、内核,操作系统...
    99+
    2023-07-02
  • Linux目录结构的意义是什么
    本篇内容介绍了“Linux目录结构的意义是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!/root --- 启动linux时使用的一些核...
    99+
    2023-07-05
  • 在Python中移动目录结构的方法
    来源:http://stackoverflow.com/questions/3806562/ways-to-move-up-and-down-the-dir-structure-in-python #M...
    99+
    2022-06-04
    中移动 结构 目录
  • proftpd结构是怎么样的
    这篇文章主要为大家展示了“proftpd结构是怎么样的”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“proftpd结构是怎么样的”这篇文章吧。proftpd 的结构這個 proftpd 伺服器的...
    99+
    2023-06-16
  • Proftpd的结构是怎么样的
    这期内容当中小编将会给大家带来有关Proftpd的结构是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。ProFTPD是继Wu-FTP之后最为流行的FTP服务器软件。ProFTPD的结构就是roftp...
    99+
    2023-06-16
  • linux内核结构是怎样的
    Linux内核是一个分层的结构,由多个模块组成,每个模块负责不同的功能。下面是Linux内核的主要组成部分:1. 进程管理模块:负责...
    99+
    2023-10-08
    linux
  • mysql日志结构是怎样的
    这篇文章主要讲解了“mysql日志结构是怎样的”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql日志结构是怎样的”吧! 一...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作