Storm核心组件运行机制

 

 

 



 
1. storm集群启动后,nimbus进程、supervisor进程,分别向zookeeper进行注册

  • nimbus做为服务方,往zookeeper对应目录写job配置信息文件
  • supervisor做为客户端,监控zookeeper对应的目录

 

2. 通过strom client客户端提交job到nimbus,其中包括:

  • 指定spout、bolt实现类,以及并行数量
  • 各个spout、bolt的依赖关系和分组关系
  • Storm配置信息、运行方式(如:服务器提交或本地提交)
 
3. nimbus收到客户提交的Job请求信息后,按storm集群的配置信息,以及当前集群上空闲的worker信息,进行任务分配,将任务分配给supervisor,并将上述信息进行序列化,存储到zookeeper集群上,其中序列化的信息包括:
  • 由哪几台supervisor(机器),启动多少个worker,多少并行线程数
  • superviso和worker对应的ip地址和端口号
  • job程序

 

4. zookeeper监控到nimbus的写文件操作后,发送事件通知所有supervisor,对应的supervisor收到事件通知后,去zookeeper指定目录获取worker和job信息,并启动相应数量的worker和Exectuor(一般情况下,一个Executor对应一个Task任务,一个Task可以是一个spout对象实例或一个bolt对象实例)

 

 

5. Executor启动后,通过spout去读取数据源(数据源可能是:消息中间件、数据库、文件等数据)

 

 

6. 在上一步的基础上,spout读取外部数据源信息,通过调用nextTuple方法,进行任务处理,然后将处理结果发送给Topology程序,Topologyt程序由Storm框架将结果发往Storm的消息队列,然后Storm框架去消费队列中的一个消息,然后去调用下一个依赖的bolt,通过反序列化将Topology对象信息传bolt对象,然后去调用bolt的execute方法进行处理

 

 

7. Exeutor按照spout和bolt的依赖关系,持续处理数据,直接到整个Topology执行结束(在Storm中通过UI界面或Storm命令结束Topology)

 

 

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值