zoukankan      html  css  js  c++  java
  • Twitter Storm源代码分析之Nimbus/Supervisor本地目录结构

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

         具体nimbus和supervisor在zookeeper上交换了哪些信息可以看一下这篇文章: Twitter Storm源代码分析之ZooKeeper中的目录结构。知道了他们在zookeeper存的信息之后,大家一定想知道nimbus和zookeeper在自己本机存了什么信息呢?这篇文章给你介绍。代码主要包括config.cljnimbus.clj,supervisor.cljworker.clj

    注意:下面目录结构里面, nimbus机器上面只有/nimbus目录,supervisor机器上面只有/supervisor目录和/workers目录。

    复制代码
     1 /{storm-local-dir}
     2   |
     3   |-/nimbus
     4   |   |
     5   |   |-/inbox                     -- 从nimbus客户端上传的jar包
     6   |   |  |                            会在这个目录里面
     7   |   |  |
     8   |   |  |-/stormjar-{uuid}.jar    -- 上传的jar包其中{uuid}表示
     9   |   |                               生成的一个uuid
    10   |   |
    11   |   |-/stormdist
    12   |      |
    13   |      |-/{topology-id}
    14   |         |
    15   |         |-/stormjar.jar        -- 包含这个topology所有代码
    16   |         |                         的jar包(从nimbus/inbox里
    17   |         |                         面挪过来的)
    18   |         |
    19   |         |-/stormcode.ser       -- 这个topology对象的序列化
    20   |         |
    21   |         |-/stormconf.ser       -- 运行这个topology的配置
    22   |
    23   |-/supervisor
    24   |   |
    25   |   |-/stormdist
    26   |   |   |
    27   |   |   |-/{topology-id}
    28   |   |      |
    29   |   |      |-/resources          -- 这里保存的是topology的
    30   |   |      |                        jar包里面的resources目录
    31   |   |      |                        下面的所有文件
    32   |   |      |
    33   |   |      |-/stormjar.jar       -- 从nimbus机器上下载来的
    34   |   |      |                        topology的jar包
    35   |   |      |
    36   |   |      |-/stormcode.ser      -- 从nimbus机器上下载来的
    37   |   |      |                        这个topology对象的序列
    38   |   |      |                        化形式
    39   |   |      |
    40   |   |      |-/stormconf.ser      -- 从nimbus机器上下载来的
    41   |   |                               运行这个topology的配置
    42   |   |
    43   |   |-/localstate                -- supervisor的localstate
    44   |   |
    45   |   |-/tmp                       -- 临时目录,从Nimbus上下
    46   |      |                            载的文件会先存在这个目
    47   |      |                            录里面,然后做一些简单
    48   |      |                            处理再copy到
    49   |      |                            stormdist/{topology-id}
    50   |      |                            里面去
    51   |      |-/{uuid}
    52   |         |
    53   |         |-/stormjar.jar        -- 从Nimbus上面download下
    54   |                                   来的工作jar包
    55   |
    56   |-/workers
    57       |
    58       |-/{worker-id}
    59           |
    60           |-/pids                  -- 一个worker可能会起多个子
    61           |   |                       进程所以可能会有多个pid
    62           |   |
    63           |   |-/{pid}             -- 运行这个worker的JVM的pid
    64           |
    65           |-/heartbeats            -- 这个supervisor机器上的
    66              |                        worker的心跳信息
    67              |
    68              |-/{worker-id}        -- 这里面存的是一个worker
    69                                       的心跳:主要包括心跳时
    70                                       间和worker的id
    复制代码
  • 相关阅读:
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    WPF DelegateCommand 出现Specified cast is not valid
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    win10 sdk 是否向下兼容
    PHP extract() 函数
    PHP end() 函数
    PHP each() 函数
    PHP current() 函数
  • 原文地址:https://www.cnblogs.com/catkins/p/5251003.html
Copyright © 2011-2022 走看看