天天看点

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

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

发表于  2012 年 01 月 04 日  由  xumingming 作者:  xumingming | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明

网址:  http://xumingming.sinaapp.com/483/twitter-storm-code-analysis-local-dir/

我们知道,storm集群里面工作机器分为两种一种是nimbus, 一种是supervisor, 他们通过zookeeper来进行交互,nimbus通过zookeeper来发布一些指令,supervisor去读zookeeper来执行这些指令,具体nimbus和supervisor在zookeeper上交换了哪些信息可以看一下这篇文章: Twitter Storm源代码分析之ZooKeeper中的目录结构。知道了他们在zookeeper存的信息之后,大家一定想知道nimbus和zookeeper在自己本机存了什么信息呢?这篇文章给你介绍。代码主要包括config.clj, nimbus.clj, supervisor.clj, worker.clj。

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

帮助

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 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70

/{storm-local-dir}

|

|-/nimbus

|   |

|   |-/inbox                     -- 从nimbus客户端上传的jar包

|   |  |                            会在这个目录里面

|   |  |

|   |  |-/stormjar-{uuid}.jar    -- 上传的jar包其中{uuid}表示

|   |                               生成的一个uuid

|   |

|   |-/stormdist

|      |

|      |-/{topology-id}

|         |

|         |-/stormjar.jar        -- 包含这个topology所有代码

|         |                         的jar包(从nimbus/inbox里

|         |                         面挪过来的)

|         |

|         |-/stormcode.ser       -- 这个topology对象的序列化

|         |

|         |-/stormconf.ser       -- 运行这个topology的配置

|

|-/supervisor

|   |

|   |-/stormdist

|   |   |

|   |   |-/{topology-id}

|   |      |

|   |      |-/resources          -- 这里保存的是topology的

|   |      |                        jar包里面的resources目录

|   |      |                        下面的所有文件

|   |      |

|   |      |-/stormjar.jar       -- 从nimbus机器上下载来的

|   |      |                        topology的jar包

|   |      |

|   |      |-/stormcode.ser      -- 从nimbus机器上下载来的

|   |      |                        这个topology对象的序列

|   |      |                        化形式

|   |      |

|   |      |-/stormconf.ser      -- 从nimbus机器上下载来的

|   |                               运行这个topology的配置

|   |

|   |-/localstate                -- supervisor的localstate

|   |

|   |-/tmp                       -- 临时目录,从Nimbus上下

|      |                            载的文件会先存在这个目

|      |                            录里面,然后做一些简单

|      |                            处理再copy到

|      |                            stormdist/{topology-id}

|      |                            里面去

|      |-/{uuid}

|         |

|         |-/stormjar.jar        -- 从Nimbus上面download下

|                                   来的工作jar包

|

|-/workers

|

|-/{worker-id}

|

|-/pids                  -- 一个worker可能会起多个子

|   |                       进程所以可能会有多个pid

|   |

|   |-/{pid}             -- 运行这个worker的JVM的pid

|

|-/heartbeats            -- 这个supervisor机器上的

|                        worker的心跳信息

|

|-/{worker-id}        -- 这里面存的是一个worker

的心跳:主要包括心跳时

间和worker的id