storm目录结构及在zk中的目录结构

storm目录结构及在zk中的目录结构

@(博客文章)[storm]

  • storm目录结构及在zk中的目录结构
  • 一storm在磁盘中的内容
    • 一nimbus中的目录结构
      • 1inbox目录
      • 2stormdist目录
    • 二supervisor中的目录结构
      • 1supervisor目录
      • 2worker-users目录
      • 3worker目录
  • 二storm在zookeeper中的信息
    • 1assignment
    • 2storms
    • 3supervisor
    • 4workerbeats
    • 5errors
    • 6credentials

一、storm在磁盘中的内容

(一)nimbus中的目录结构

/home/data/storm/nimbus目录有2个子目录
inbox stormdist

1、inbox目录

2个jar包

ls inbox/
stormjar-32a7ece3-30f6-46b0-a85a-f8a6d7bedd4b.jar  stormjar-9d203ae1-55e3-46aa-a503-e0f64dc77850.jar

2、stormdist目录

与supervisro相同,见下面。

(二)supervisor中的目录结构

/home/data/storm目录下有3个目录

supervisor  workers  workers-users

1、supervisor目录

就是supervisor的一些信息,包括拓扑的jar包等

$ tree
.
|-- isupervisor
|   |-- 1448866045210
|   `-- 1448866045210.version
|-- localstate
|   |-- 1448867673421
|   |-- 1448867673421.version
|   |-- 1448867676421
|   |-- 1448867676421.version
|   |-- 1448867677289
|   |-- 1448867677289.version
|   |-- 1448867677292
|   `-- 1448867677292.version
|-- stormdist
|   |-- ma321-13-1448866092
|   |   |-- stormcode.ser
|   |   |-- stormconf.ser
|   |   `-- stormjar.jar
|   `-- test-9-1448861412
|       |-- stormcode.ser
|       |-- stormconf.ser
|       `-- stormjar.jar
`-- tmp

stormdist目录是nimbus分发过来的代码、配置及jar包。
nimbus的stormdist目录下也有相同的目录,内容也一样。不同之处是nimbus有全部拓扑的内容,而supervisor只有分配到的拓扑的内容。

stormjar.jar是topo的代码jar包。
stormcode.ser是拓扑的序列化文件,包括拓扑的各个组件的详细信息与它们之间的关系。
stormconf.ser是topo的配置信息

2、worker-users目录

worker-users里面有一些空文件,这些文件的名字就是worker的id,如

ls -l workers-users/
total 0
-rw-r--r-- 1 hadoop hadoop 0 11月 30 14:48 917efffc-2ee6-4392-b365-06bc3a846a4c
-rw-r--r-- 1 hadoop hadoop 0 11月 30 14:50 fee027e3-a737-4f49-9c85-da5bb4acc43c

3、worker目录

workers里面则是每个worker的一些信息,如心跳与pid的记录

total 8
drwxr-xr-x 4 hadoop hadoop 4096 11月 30 14:48 917efffc-2ee6-4392-b365-06bc3a846a4c
drwxr-xr-x 4 hadoop hadoop 4096 11月 30 14:50 fee027e3-a737-4f49-9c85-da5bb4acc43c

注意这些是目录,这些目录下的内容如下:

ls 917efffc-2ee6-4392-b365-06bc3a846a4c/
heartbeats  pids

因此,当在worker目录定位到一个worker,但想要启动这个worker,却在supervisor目录中找不到对应的内容,因此启动失败。

二、storm在zookeeper中的信息

有一些解释,但版本较老:http://xumingming.sinaapp.com/466/twitter-storm-code-analysis-zookeeper-dirs/

storm在zookeeper中有以下6个目录(默认在/storm下)

/assignments -> 任务分配信息
/storms -> 正在运行的topology的ID
/supervisors -> 所有的Supervisors的心跳信息
/workerbeats -> 所有的Worker的心跳
/errors -> 产生的出错信息
/credentials ->认证信息

1、assignment

任务的分配信息,supervisor会不断的读取这里的信息,看有没有被分配的任务需要处理。

2、storms

正在运行的拓扑id

3、supervisor

所有的Supervisors的心跳信息

4、workerbeats

每个worker的心跳信息

5、errors

错误信息, UI即通过在这里读取信息来显示

6、credentials

认证信息

你可能感兴趣的:(storm,zookeeper)