storm-流式处理框架

storm是实时的,分布式以及具备高容错的计算系统。

一、架构介绍
上述内容有三个关键词:实时、分布式、高容错。

实时:
storm最早是由Twitter(推特)在GitHub上开源出来的。推特我们大家都知道,类似于微博的东西,所以他要求处理速度非常快,点一下马上出来内容才可以。
那么,他是怎么做到实时的呢?

1)storm进程是常驻内存的。与MapReduce不同,MapReduce是进程运行完就会退出。而storm不同,他是一直开着的,数据来了就处理,没有数据的时候也一直开着,一个月两个月、一年两年、只要不出事,就一直运行着。而且是在内存上的,所以速度很快。

2)storm数据不经过磁盘,在内存中处理。从这个角度看,也可以称之为内存计算。
storm集群

实时我们已经理解了,是数据在内存中进行计算,而且不存盘直接在网络中传输。而理解分布式和高容错可以先了解一下storm的架构,这个架构可以帮助我们理解这两个概念。
storm集群架构模型如下:
storm架构采用主从架构的模式,主节点为nimbus,从节点为supervisor,有关调度的信息存储到zookeeper集群。
在这里插入图片描述
Nimbus:storm架构的Master节点,用于提交任务,分配集群任务,监控集群等

zookeeper:集群数据协调、公有数据的存放、nimbus将分配给supervisor的任务写入zookeeper然后由zookeeper协调写入

supervisor:storm架构的从节点。负责接收Nimbus分配的任务,管理属于自己的worker进程的启动和终止。

worker:运行具体处理组件逻辑的进程。每个work进程中运行一个或多个executor线程。每个supervisor默认有四个worker。

executor:为worker进程中的一个线程,executor中可以运行一个或多个spout/blot任务。

Task:任务,就是组件(spout/blot),spout/blot是由自己编码,真正用来分析计算的。每个executor进程中,默认有一个task。

具体的流程就是Nimbus首先启动,然后与zookeeper集群进行通信,把要给worker发布的任务放到zookeeper集群中,然后zookeeper与从节点进行通信,告诉他开启worker进程。worker进程开启后从zookeeper中读取自己要执行的任务,然后开始计算。

有了这个架构,我们就可以很好的了解分布式与高容错。

分布式:
分布式是指storm中的从节点(supervisor)可以并发的工作。这样一来,就可以快速的处理海量的数据。

高容错:
高容错是指nimbus把对worker的指令放在zookeeper集群中,zookeeper具有极高的可靠性,所以,即使以后主节点(Nimbus)宕机了,也没有关系,zookeeper可以代替他工作,只需要重启就可以了。
高容错的另一个方面表现在worker上,在storm架构中,如果worker进程出现了问题,从节点会自动重启这个线程,如果在规定时间内启动成功,则继续工作,如果启动失败,那么Nimbus会重新分配任务。

二、工作原理
上面我们介绍了storm的架构,那么他具体是怎么工作的呢?
storm的计算是通过spout/blot来进行的。
话不多说,上图:
在这里插入图片描述在这里插入图片描述
spout(水龙头):它负责从数据源不断的抽取数据。经过一定的处理后发送给blot。
blot(闪电):它负责把从spout中获取到的数据再次进行计算(计算方法由自己编写),然后选择性的输出一个或多个数据流。
Tuple(彩色小方块):元组中的作用是传输数据。
Stream(箭头/彩带):有无限个Tuple组成的序列。

工作过程:
由spout从数据源抽取数据,然后经过计算后发送给blot,一个spout可以把数据发送给一个或多个blot,这个过程叫做分组,这个blot计算完毕后可以把数据发送给下一个blot,然后数据经过一个或多个blot的计算,最后选择性的输出一个或多个数据流。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值