Storm拓扑

本文详细介绍了Apache Storm中的拓扑结构,包括如何在Java中构建拓扑,以及流分组的不同策略如随机分组、字段分组等。同时,讨论了本地模式和分布式模式的配置及应用场景,还提到了常见拓扑模式如流连接、批处理等。
摘要由CSDN通过智能技术生成

一 什么是拓扑

Storm中的拓扑,实际上就是一个有向图的计算。拓扑中节点包含数据的逻辑处理;节点之间的边显示数据如何在节点直接流动。


二 Java中如何建立拓扑

1 首先创建一个TopologyBuilder对象。

2 使用setSpout方法和setBolt方法,建立拓扑中的节点以及节点之间的联系。(方法的参数列表:第一个参数表示组件的id;第二个参数是Spout或者Bolt对象,包含数据的处理逻辑;第三个参数表示组件的并行度,也就是执行器(或线程)的数量,默认为1)。

如果要用一个Bolt订阅多个数据来源,在Bolt内部可以调用Tuple的getSourceComponent方法确定tuple来自哪个组件。

3 对拓扑中的参数进行配置(可以使用HashMap对象或者Storm中的backtype.storm.Config对象)。

4 使用TopologyBuilder对象创建拓扑,并提交拓扑。(可以选择提交到生产环境的Storm集群;或者开发调试环境的LocalCluster)。


三 流分组

流分组定义了元组(tuple)如何在组件(Spout和Bolt)之间分发。

Storm内置了7中流分组方式,此外,开发者还可以通过实现CustomStreamGrouping接口,开发自己的分组方式。

1 随机分组(shuffle grouping)

最常用的分组方式,它随机的将元组分发到Bolt的任务上,这样可以保证每个任务得到数量相同的元组,提高并发能力。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值