Storm在zookeeper上的操作和目录结构
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章主要讲解了"Storm在zookeeper上的操作和目录结构",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Storm在zookeeper上的操
千家信息网最后更新 2025年12月01日Storm在zookeeper上的操作和目录结构
这篇文章主要讲解了"Storm在zookeeper上的操作和目录结构",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Storm在zookeeper上的操作和目录结构"吧!
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 -> 任务分配信息
/storms -> 正在运行的topology的ID
/supervisors -> 所有的Supervisors的心跳信息
/workerbeats -> 所有的Worker的心跳
/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感谢各位的阅读,以上就是"Storm在zookeeper上的操作和目录结构"的内容了,经过本文的学习后,相信大家对Storm在zookeeper上的操作和目录结构这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
信息
目录
时间
结构
运行
内容
数据
学习
任务
文件
正在
状况
分配
存储
主机
代码
口号
名字
就是
思路
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
永兴电脑软件开发工资多少
qq空间显示服务器繁忙
安卓软件开发报告及代码
3d游戏软件开发培训学校哪家好
服务器安全狗还是网站安全狗
战地之王服务器怎么样
数据库系统工程师介绍
易语言数据库可以被共享吗
山东系统软件开发价格表
分布式数据库中的所有权限
学软件开发哪个好
互联网企业软件开发流程
软件开发能不能学
软件开发项目创意
网络安全安天集团
软件开发svn目录结构
南昌ios软件开发多少钱
我的世界电脑服务器在哪玩
网络安全工程师招聘重庆
网络安全大检查总结报告
运满满网络安全审查多久结束
银行开展国家网络安全周治动
最短服务器
购买的域名和服务器在哪里
自考软件开发工具教材PDF
快速软件开发珍藏版pdf
特朗普科技互联网
模型库数据库知识库之间的关系
惠普服务器管理默认密码
医院网络安全检查 报告