Storm学习

来源:互联网 发布:vscode直接调试ts代码 编辑:程序博客网 时间:2024/05/29 18:17

        虽然这两个框架都提供可扩展性和容错性,它们根本的区别在于他们的处理模型。而Storm处理的是每次传入的一个事件,而Spark Streaming是处理某个时间段窗口内的事件流。因此,Storm处理一个事件可以达到秒内的延迟,而Spark Streaming则有几秒钟的延迟。


Storm 组件:

    主从结构: 主为Nimbus,从为Supervisor      通过zookeeper管理。

    主单点的活比较轻,只负责管理。Supervisor管理worker干活。他也不负责数据计算与数据传输。

有些人认为:Storm的数据传输,数据通信是由worker开进行。这是不合理,他们提出数据通信有一个中间件来进行。因此有了Heron,使用Supervisor复用负责数据传输。

除此之外还有一个DRPC组件、还有GUI来监控Storm。


Storm作业提交流程:

1.用Storm的api写一个作业,称之为Topolgy

2.使用client提交Topology给Nimhus

3.分配task给Supervisor

4.supervisor为task启动worker

5.worker执行task


作业=Topolgy  :Topolgy由数据源节点Spout与普通计算节点Bolt组成,还有一些边数据流Stream(在流里面的每一条记录称之为Tuple)。组成一个计算拓扑图。 




这里是一个bolt链,不断的处理数据,bolt可以随时写数据到外部数据源中

数据传输的tuple可以grouping,也就是安装一定规则或者随机传输。



API

0 0