【Storm的简介】

storm分布式实时计算框架,在整个程序中,spout接收数据源并封装数据为tuple,然后将tuple发送给bolt处理,处理完数据后可以发送到下一个bolt中再处理也可以直接进行外部存储。那么这中间就涉及到一个任务处理的容错机制,和tuple发送的分配机制了。

核心概念

Input data source:数据来源,一般有hdfs,kafka,hive,hbase等等

spout:storm的处理数据源类,获取数据,并封装数据为tuple

bolt:storm的核心处理逻辑,

Tuple:数据结构,storm中的数据处理以tuple为基本单位,数组结构

Nimbus:storm集群中的master节点的称呼,主要是管理storm任务

Supervisor:集群的从节点称呼,具体处理数据的类

Zookeeper:分布式协调服务,在集群中感知supervisor的状态,以便nimbus分配资源

Topology;storm的应用程序

Bolte的分配策略

目前storm支持的分配策略有8中,随机分配,指定分配,按相同的字段分配等,

Topology应用程序

自定义类继承BaseRichSpout,open方法用来初始化spout的输出收集器SpoutOutputCollector,    nextTuple方法用来封装tuple并又输出收集器发送,declareOutputFields方法用来定义发送的tuple消息元祖的字段名字。

自定义类继承BaseRichBolt,prepare方法用来初始化OutputCollector输出收集器,execute方法用来获取spout发送的tuple元祖并处理后由收集器发送,declareOutputFields方法用来定义输出字段的名字。

自定义main类,初始化TopologyBuilder类,设置spout,bolt和config信息,对于spout和bolt需要设置其并行度,bolt需要设置其分配策略,并制定tuple的接收来之哪个bolt.

storm的容错机制

容错机制就是动态感知tuple的处理结果,当tuple处理失败的话能够重新发送处理,当我们封装tuple时可以传递一个唯一ID.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容