Storm集群中的组件介绍

介绍

Storm作为最流行的的实时流计算框架,提供了可容错的分布式计算所要求的基本源语和保障机制

Storm的简单的工作机制

Storm的数据的流程

spout先从外部获取数据,然后简单的封装成一个个的tuple发送到Bolt,Bolt处理后再将处理后的数据封装成一个个的tuple再发送到下一个Bolt,直到最后一个Bolt处理完成

Storm集群中的几大组件

Storm集群的组件

step1:
1. Client向Storm集群提交任务,将打包好的jar包提交到nimbus的nimbus/inbox目录下
2. 为当前的topology分配一个id,topology_uuid,然后创建好目录nimbus/stormdist/topology_uuid,将jar包,topology对象的序列化文件,以及topology的配置信息放在这个目录下
3. nimbus会根据提交的topology中的并发度(executors的数量)以及worker的数量,来给spout/bolt设定task的数目,并且分配对应的task_id,在这边就指定好了哪一个task执行spout,哪一个task执行哪一个bolt,并记录了下来
下面是通过Jstorm(由于Strom是使用Clojure编写的,我们需要跟踪源码的时候比较困难,这里我们选择alibaba的Jstorm)跟踪到的任务分配的一些信息:
Jstorm任务分配的相关信息
step2:
nimbus将分配好的任务的信息写到zookeeper上
step3:
supervisor根据zookeeper上的watch机制,监听到有任务分配后,根据指定的任务分配信息启动相应的worker
step4:
查看分配到的任务,以及启动线程来执行Spout和Bolt组件
在执行的过程中,除了最后一个Bolt所在的task,其余的task还需要向其他的task发送数据,这里就需要根据task_id来查看其下一份数据应发送到哪一个worker,然后根据该worker的ip地址(worker所在的主机的ip)和端口号(配置文件中会指定worker的端口号)建立socket连接发送数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值