• 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
    复制代码
  • 相关阅读:
    day19(上)_IO流2(BufferedReaer,BufferedWriter,BufferedInputStream,BufferedOutputStream)
    day19(下)_IO流4(InputStreamReader,OutputStreamWriter,流操作规律总结)
    Synchronized锁 IT
    Linux查看端口信息命令 IT
    ReentrantLock锁 IT
    让网站实时生成多种电子书:jar、umd、chm、pdf、epub
    mysql性能的检查和调优方法
    新型的大型bbs架构(squid+nginx)
    uchome中的防反复提交机制
    joymobiler V2.7发布,支持pdf文档的生成
  • 原文地址:https://www.cnblogs.com/catkins/p/5251003.html
Copyright © 2020-2023  润新知