Storm启动流程分析

Posted ahu-lichang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Storm启动流程分析相关的知识,希望对你有一定的参考价值。

Storm启动流程分析

1、客户端运行storm nimbus时,会调用storm的python脚本,该脚本中为每个命令编写了一个方法,每个方法都可以生成一条相应的Java命令。

命令格式:java -server xxx.ClassName  -args

nimbus--->Running:/export/servers/jdk/bin/java  -server  backtype.storm.daemon.nimbus

supervisor--->Running:/export/servers/jdk/bin/java  -server  backtype.storm.daemon.supervisor

2、nimbus启动之后,接受客户端提交任务

命令格式:storm jar xxx.jar  xxx.驱动类  参数

Running:/export/servers/jdk/bin/java  -client  -Dstorm.jar=/export/servers/storm/examples/storm-master/storm-master-topologies-0.9.5.jar  org.apache.storm.starter.WordCountTopology  wordcount-2017-5-20

该命令会执行storm-starter-topologies-0.9.5.jar中的storm-starter-topologies-0.9.5.jar的main方法,main方法中会执行以下代码:

StormSubmitter.submitTopology("mywordcount",config,topologyBuilder.createTopology());

topologyBuilder.createTopology(),会将程序员编写的spout对象和bolt对象进行序列化。

会将用户的jar上传到nimbus物理节点的/export/data/storm/workdir/nimbus/inbox目录下。并且改名,改名的规则是添加了一个UUID字符串。

在nimbus物理节点的/export/data/storm/workdir/nimbus/stormdist目录下。有当前正在运行的topology的jar包和配置文件,序列化对象文件。

3、接收到任务之后,会将任务进行分配,分配会产生一个assignment对象,该对象会保存到Zookeeper中,目录是/storm/assignments,该目录只保存正在运行的topology任务。

 


 

 

以上是关于Storm启动流程分析的主要内容,如果未能解决你的问题,请参考以下文章

[Abp 源码分析] Abp 框架启动流程分析

SpringBoot启动流程分析:IoC容器的初始化过程

SpringBoot 高级 原理分析 -- SpringBoot启动流程分析

Linux系统启动流程分析与关机流程

springboot启动流程分析

BSP开发之kernelLinux启动流程以及编译流程分析