`

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

 
阅读更多

转载:http://xumingming.sinaapp.com/483/twitter-storm-code-analysis-local-dir/

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


我们知道,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
分享到:
评论

相关推荐

    Twitter storm

    ### Twitter Storm:实时计算系统详解 #### 背景与定义 Twitter Storm 是一款由Apache基金会维护的开源分布式实时计算系统。它最初由BackType公司开发,并于2011年开源,随后被Twitter收购并进一步发展。Storm 的...

    Storm @Twitter-Slides.pdf

    《Storm @Twitter》是大数据流处理领域的经典之作,它由Twitter公司的工程师们提出,为实时数据流分析提供了一个强大的平台。这篇论文的原作PPT是学习Storm和流处理技术的重要资源。以下是对Storm核心概念和内部机制...

    storm-starter-master

    在"storm-starter-master"这个项目中,通常会包含一系列的示例,如简单的单词计数(WordCount)、日志分析等,这些示例有助于初学者理解如何在Storm中创建拓扑结构(Topology)并部署运行。每个示例都会展示如何定义...

    storm的jar包

    Storm是一个开源的分布式实时计算系统,由Twitter开发并开源,其设计目标是让实时处理变得简单、强大且可靠。在Storm中,数据流被抽象为持续不断的Tuple(元组)序列,这些Tuple在网络中的worker节点间进行分布式...

    storm 从零到精通 非常实用的文件

    - Spout 是数据流的源头,负责从外部数据源读取数据并将数据注入到 Storm 的拓扑结构中。 - **2.1.4 螺栓(Bolt)** - Bolt 是数据流中的处理单元,它可以接收输入流并对其执行计算,然后将结果输出到其他 Bolts ...

    Storm的文档详解

    - **Supervisor**:负责接受 Nimbus 分配的任务,并在本地机器上启动和停止 Worker 进程。通过配置文件可以设置当前 Supervisor 启动的 Worker 数量。 - **Worker**:执行实际数据处理的进程,每个 Worker 运行特定...

    apache-storm-2.1.0.tar.gz

    6. **Supervisor**:Supervisors是Storm集群的工作节点,它们接收Nimbus分配的任务,管理并运行工作进程。 7. **Zookeeper**:Storm依赖Zookeeper来协调集群状态,确保高可用性和一致性。 8. **Trident**:Trident...

    storm一个简单实例

    3. **Storm集群部署**:实例在集群中运行,说明会涉及Zookeeper协调、Nimbus节点分配任务、Supervisor管理worker进程等集群管理内容。 4. **Java编程**:作为主要开发语言,Java提供了丰富的类库和工具,使得开发、...

    漫谈大数据第四期-storm

    Twitter将Storm正式开源了,这是一个分布式的、容错的实时计算系统,它被托管在GitHub上,遵循 Eclipse Public License 1.0。Storm是由BackType开发的实时处理系统,BackType现在已在Twitter麾下。GitHub上的最新...

    storm job 提交集群测试 注意事项

    - **编译打包**:将源代码编译成JAR文件,通常会包含拓扑结构、依赖库等。 - **配置参数**:根据实际需求,配置拓扑运行参数,如worker数量、执行器(Executor)线程数等。 - **提交Job**:通过命令行工具`storm ...

    项目1-Storm安装与编程实践1

    - 开源免费:遵循Apache许可证,用户可以自由使用和修改源代码。 2. Storm设计思想: - Nimbus:作为主控节点,负责任务调度和资源分配,确保集群的正常运行。 - Supervisor:工作节点,接收Nimbus的指令,管理...

    storm-starter

    1. **Apache Storm 概念**:Apache Storm的核心概念包括拓扑(Topology)、工作者(Worker)、节点(Nimbus)和代理(Supervisor)。拓扑定义了数据流的处理逻辑,工作者负责执行拓扑中的任务,Nimbus 负责分配任务...

    TalkStorm:在JUG Milano的Storm talk中显示的代码

    【标题】"TalkStorm:在JUG Milano的Storm talk中显示的代码"涉及的主要知识点是Apache Storm,这是一个实时计算系统,常用于大数据处理。在Java编程语言中,Storm提供了强大的分布式流处理能力,允许开发者构建容错...

    MatchAlgorithmUsingStorm:使用Storm在群集环境中实现子发布匹配算法

    这包括安装JDK、下载Storm发行版、配置storm.yaml文件以及启动 Nimbus、Supervisor 和 Zookeeper 服务。 2. **编写Spout组件**:在Storm中,Spout是数据流的源,负责生成或读取数据。对于子发布匹配算法,Spout可以...

    jstorm集成kafka插件demo

    对于Kafka,你需要设置Zookeeper地址,对于JStorm,你需要配置nimbus和supervisor节点。 2. **创建Kafka Topic**:在Kafka中,数据是以Topic的形式存在,我们需要先创建一个Topic,用于JStorm从中读取数据。 3. **...

Global site tag (gtag.js) - Google Analytics