我们知道Twitter Storm的所有的状态信息都是保存在Zookeeper里面,nimbus通过在zookeeper上面写状态信息来分配任务,supervisor,task通过从zookeeper中读状态来领取任务,同时supervisor, task也会定义发送心跳信息到zookeeper, 使得nimbus可以监控整个storm集群的状态, 从而可以重启一些挂掉的task。ZooKeeper 使得整个storm集群十分的健壮 — 任何一台工作机器挂掉都没有关系,只要重启然后从zookeeper上面重新获取状态信息就可以了。本文主要介绍Twitter Storm在ZooKeeper中保存的数据目录结构,源代码主要是: backtype.storm.cluster, 废话不多说,直接看下面的结构图:
一个要注意的地方是,作者在代码里面很多地方用到的storm-id
, 其实就是topology-id
的意思。我在邮件列表里面问了他一下, 他说以前他把topology叫做storm, 代码里面还没有改过来。
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
/-{storm-zk-root} -- storm在zookeeper上的根
| 目录
|
|-/assignments -- topology的任务分配信息
| |
| |-/{topology-id} -- 这个下面保存的是每个
| topology的assignments
| 信息包括: 对应的
| nimbus上的代码目录,所有
| task的启动时间,
| 每个task与机器、端口的映射
|
|-/tasks -- 所有的task
| |
| |-/{topology-id} -- 这个目录下面id为
| | {topology-id}的topology
| | 所对应的所有的task-id
| |
| |-/{task-id} -- 这个文件里面保存的是这个
| task对应的component-id:
| 可能是spout-id或者bolt-id
|
|-/storms -- 这个目录保存所有正在运行
| | 的topology的id
| |
| |-/{topology-id} -- 这个文件保存这个topology
| 的一些信息,包括topology的
| 名字,topology开始运行的时
| 间以及这个topology的状态
| (具体看StormBase类)
|
|-/supervisors -- 这个目录保存所有的supervisor
| | 的心跳信息
| |
| |-/{supervisor-id} -- 这个文件保存的是supervisor
| 的心跳信息包括:心跳时间,主
| 机名,这个supervisor上worker
| 的端口号运行时间
| (具体看SupervisorInfo类)
|
|-/taskbeats -- 所有task的心跳
| |
| |-/{topology-id} -- 这个目录保存这个topology的所
| | 有的task的心跳信息
| |
| |-/{task-id} -- task的心跳信息,包括心跳的时
| 间,task运行时间以及一些统计
| 信息
|
|-/taskerrors -- 所有task所产生的error信息
|
|-/{topology-id} -- 这个目录保存这个topology下面
| 每个task的出错信息
|
|-/{task-id} -- 这个task的出错信息
|
相关推荐
storm,kafka,zookeeper jar包 storm,kafka,zookeeper jar包
Zookeeper源码分析.epub
主要介绍了浅谈Storm在zookeeper上的目录结构的相关内容,涉及storm使用zookeeper的操作以及详细结构图,具有一定参考价值,需要的朋友可以了解下。
zookeeper源码分析(一)工作原理概述 zookeeper源码分析(二)FastLeader选举算法 Zookeeper源码分析之Paxos算法之旅
Storm项目实战 之案例优化引入Zookeeper锁控制线程操作,出自Storm流计算从入门到精通之技术篇,Storm入门视频教程用到技术:Storm集群、Zookeeper集群等,涉及项目:网站PV、UV案例实战、其他案例 学习此课程需要...
Zookeeper3.5.1(源码解析)
Storm环境搭建,解压Storm1.2.2+Zookeeper3.4.14,配置好环境变量可以直接使用。
搭建storm+kafka+zookeeper环境所需要的三个环境组件,里面的参数已经配置完成,你只需要把对应的集群的ipHost换成你搭建的ip即可,已经成功搭建并测试,如果有疑问可以访问本人的博客,里面有详细的配置可供参考
zookeeper的基础介绍,ppt
分别为1、storm项目-流数据监控系列1《设计文档》2、storm项目-流数据监控系列2《代码解析》 3、storm项目-流数据监控系列3《实例运行》4、storm项目-流数据监控系列4《MetaQ接口》5、storm项目-流数据监控系列5...
实现 zookeeper 的目录删除和复制,复制可以在不同实例之间进行,实现了简单的查询和更新~ 之前传了一个有个label写错了 删不了 重新传一个
第2章 ZooKeeper之序列化组件源码解析【透视现象,直击本质】 第4章 持久化【高手过招必备】 第6章 服务器启动 【由浅入深,先学好单机版,才能掌握集群版】 第7章 会话管理 【无处不在的会话其实没那么难】 第8章 ...
zookeeper 3.6.3 源码
zookeeper+kafka+storm基本介绍
zookeeper源码
storm+zookeeper+maven安装包
zookeeper作为大数据开发中常用的组件,zookeeper查看器,能够查看zookeeper上的目录资源,是排查问题的利器。特意奉上。
本方案采用统信 UOS 操作系统+Storm+Zookeeper 结合进行设计,以 Storm 为基础的分布式集群系统,搭配 Apache 开源系统中的应用程序协调服务 Zookeeper 的分布式实时大数据处理框架。 使用 UOS 统信服务器操作系统为...
实现了zookeeper节点的目录复制和删除,节点的创建、值更新 凑合能用 自己测试嫌手工复制麻烦又找不到现成的自己写了个 竟然不能免费~那就最低分拿去