徐明明博客:Twitter Storm源代码分析之ZooKeeper中的目录结构

  我们知道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, 代码里面还没有改过来。

直接看下面的结构图:

 /-{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的出错信息

Twitter Storm源代码分析之ZooKeeper中的目录结构的更多相关文章

  1. Twitter Storm源代码分析之Nimbus/Supervisor本地目录结构

    storm集群里面工作机器分为两种一种是nimbus, 一种是supervisor, 他们通过zookeeper来进行交互,nimbus通过zookeeper来发布一些指令,supervisor去读z ...

  2. Storm入门(十一)Twitter Storm源代码分析之CoordinatedBolt

    作者: xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://xumingming.sinaapp.com/811/twitter-stor ...

  3. IntelliJ和tomcat中的目录结构

    IntelliJ和tomcat中的目录结构   IntelliJ的官网帮助中心:http://www.jetbrains.com/idea/webhelp/getting-help.html   pr ...

  4. Flask【第11篇】:整合Flask中的目录结构

    整合Flask中的目录结构 一.SQLAlchemy-Utils 由于sqlalchemy中没有提供choice方法,所以借助SQLAlchemy-Utils组件提供的choice方法 import ...

  5. Storm在zookeeper上的目录结构

    storm操作zookeeper的主要函数都定义在命名空间backtype.storm.cluster中(即cluster.clj文件中). backtype.storm.cluster定义了两个重要 ...

  6. kafka笔记-Kafka在zookeeper中的存储结构【转】

    参考链接:apache kafka系列之在zookeeper中存储结构  http://blog.csdn.net/lizhitao/article/details/23744675 1.topic注 ...

  7. kafka在zookeeper中的存储结构

    参考site:http://kafka.apache.org/documentation.html#impl_zookeeper 1.zookeeper客户端相关命令 在确保zookeeper服务启动 ...

  8. MySQL 5.7 源码中的目录结构

    MySQl Server的源码可以直接去Github浏览. 这里我们选择5.7版本的:https://github.com/mysql/mysql-server/tree/5.7 也可以通过: git ...

  9. 浅谈android中的目录结构

    之前在android游戏开发中就遇到本地数据存储的问题:一般情形之下就将动态数据写入SD中存储,在没有SD卡的手机上就需另作处理了;再有在开发android应用的过程中,总要去调试APP,安装时又想去 ...

随机推荐

  1. php 分页

    分页类 <?php /** file: page.class.php 完美分页类 Page */ class Page { private $total; //数据表中总记录数 private ...

  2. oracle一点记录

    查看数据库实例名(SERVICE_NAME): sql: select instance_name from v$instance; 如何知道oracle客户端是32位还是64的.windows下启动 ...

  3. Android中libs目录下armeabi和armeabi-v7a的区别

    armeabi默认选项,支持基于 ARM* v5TE 的设备支持软浮点运算(不支持硬件辅助的浮点计算)支持所有 ARM* 设备 armeabi-v7a支持基于 ARM* v7 的设备支持硬件 FPU ...

  4. Java程序员要求具备的10项技能

    1.语法:必须比较熟悉,在写代码的时候IDE的编辑器对某一行报错应该能够根据报错信息知道是什么样的语法错误并且知道任何修正. 2.命令:必须熟悉JDK带的一些常用命令及其常用选项,命令至少需要熟悉:a ...

  5. poj 2236:Wireless Network(并查集,提高题)

    Wireless Network Time Limit: 10000MS   Memory Limit: 65536K Total Submissions: 16065   Accepted: 677 ...

  6. Ubuntu 上安装 MongoDB

    官方安装文档:https://docs.mongodb.com/manual/installation/ 安装环境: mongodb-linux-x86_64-ubuntu1404-3.2.6.tgz ...

  7. IOS登陆+注册+抽奖+排行榜

    要求:三个页面(登录页面,pickerView页面,排行榜页面),pickerView页面是三个组件,每个组件显示0-9,点击按钮进行随机,获得的值存入排行榜,排行榜显示大于500的最高的10个分数和 ...

  8. 高效jQuery的奥秘

    讨论jQuery和javascript性能的文章并不罕见.然而,本文我计划总结一些速度方面的技巧和我本人的一些建议,来提升你的jQuery和javascript代码.好的代码会带来速度的提升.快速渲染 ...

  9. 数字信号处理实验(六)——FIR滤波器的设计

    一.四种线性相位FIR滤波器的振幅响应 1.自编函数 [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) [Hr,w,a,L]=-n) 2.一个demo clea ...

  10. 汇编学习(二)——8086CPU

    一.8086CPU 1.微处理器 (1)微控制机:也称单片机 (2)DSP芯片:数字信号处理芯片 (3)嵌入式微处理器 (4)通用微处理器:PC站.工作站.服务器使用的处理器 2.内部结构: (1)总 ...