2021SC@SDUSC
storm研究综述
2021SC@SDUSC
一、storm综述
storm是Twitter开源的分布式实时大数据处理框架,对于实时计算的意义类似于Hadoop对于批处理的意义,也提供了一些简单高效的原语,让开发更加便利和高效。
二、重点确定及分工
我们小组对于storm的研究,主要集中于重点源码的分析。
首先确定该项项目的重点,经过查阅相关资料初步了解以及更好的分工,初步确定的关键词有Nimbus、Bolt、Zookeeper、Topology、Excutor、Supervisor、Woker、Task、Spout、Tuple和Stream groupings。
我个人的主要任务为了解分析有关于Bolt和Spout的相关代码。
而其中,Stream groupings为小组共同需要合作完成的任务。
三、个人任务初步了解
Storm是一个实时计算框架,它具有主节点 nimbus 和从节点 supervisor。
用户提交作业给nimbus, nimbus把任务分配给supervisor,这些提交的任务就是topology。
运行的作业分为两种 spout 和 bolt。
Storm是流式的处理即处理stream,而stream的内容是tuple(元组)
Spout(获取消息源的组件)生产tuple(元组)发送给bolt(消息处理者)处理,bolt处理过的tuple也可以再次发送给其他的bolt处理,最后存入容器。
具体介绍:
Spout 数据源
消息源Spout是Storm的Topology中的消息生产者(即Tuple的创造者)。Spout 是 Storm 的核心组件之一,它从外部获取数据后,向Topology中发出的Tuple可以是可靠的,也可以是不可靠的。此外,Spout 也可以发射多个流。
Bolt是接收Spout发出元组Tuple后处理数据的组件,所有的消息处理逻辑被封装在Bolt中,Bolt负责处理输入的数据流并产生输出的新数据流。在消息处理者Bolt在Storm中是一个被动的角色。Bolt把元组作为输入,然后产生新的元组作为输出。此外,Bolt也可以发出超过一个的流。
其架构如下图:
四、安装下载问题
初步将storm源码导入eclipse,首先需要从GitHub上下载源码,然后安装counterclockwise以支持Clojure,以及能够安装Leiningen用来管理Clojure Project。
五、其他问题
后续会根据实际完成情况进行更改