Storm:多并行度下Spout和Blot实体间Tuple的定向传输(tuple在多流时的路由)

本文转自:http://blog.csdn.net/daliaojie/article/details/17965939

多并行度下SpoutBlot实体间Tuple的定向传输

 

1 SpoutBlot多对1关系图

 

 

 

 

2 SpoutBlot11关系图

 

 

 

 

 

3 SpoutBlot  1对多关系图

 

 

 

Topology中可以有多个SpoutBlot实体。若SpoutBlot为点,Stream为边,整个Topology可以看做是由Spout BlotStream组成的有向无环图。

图中SpoutBlot或者两个Blot之间有Stream维系的关系可以为一对一、多对一、一对多三种情况。

这三种情况中,只有在一对多这种情况需要,Tuple的传输方向不明确,所以进说明该情况下,SpoutBlot实体关系的建立方法。

Spout的类中,可以在下图方法中定义由该实体发出的流的名称和流中记录的结构。下图中,定义两个流,分别命名为S1S2

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spark Streaming、Flink和Storm都是流处理技术,用于实时处理大规模数据流。下面对这三种技术进行分析和对比。 1. Spark Streaming:Spark Streaming是通过将数据流拆分成小批次进行处理的微批处理技术。它使用Spark引擎来处理数据流,并提供高级API,方便用户进行开发。Spark Streaming具有较低的延迟和较高的容错性,同时可以与Spark的批处理和机器学习库集成,使其非常适合于从批处理到流处理的转换。Spark Streaming还支持容错、状态管理和恢复机制。 2. Flink:Flink是一种纯粹的流式处理引擎,支持事件时、处理时和摄取时,并提供了低延迟和高吞吐量的流处理。Flink具有精确的状态管理和一致性,可以容错地处理故障。Flink还具有灵活的窗口操作、丰富的操作符和连接器,使其非常适合复杂的流处理任务。Flink还支持迭代计算和流-批一体化计算。 3. StormStorm是一款开源的分布式流式处理引擎,支持低延迟、高吞吐量的实时数据处理。Storm的核心概念是spout和boltspout用于从数据源接收数据,将数据转化为流并发送给boltbolt负责处理数据流,并可以将结果发送给下一个bolt或输出到外部存储系统。Storm具有较低的延迟和高可伸缩性,并且支持故障恢复和容错性。 在对比方面,Flink和Spark Streaming是基于微批处理的技术,而Storm是基于实时流处理的技术。Flink和Storm提供了精确的事件时处理和一致性,具有较低的延迟和高吞吐量,适用于对实时性要求更高的场景。而Spark Streaming在数据处理上更适合对延迟要求相对较低的场景,并且可以与Spark的批处理和机器学习库集成,使得在大规模批处理到流处理的转换中更加方便。此外,Flink还支持迭代计算和流-批一体化计算,这使得在某些特定的场景下更加有优势。 总结来说,Spark Streaming适合对延迟要求较低且需与Spark批处理和机器学习库集成的场景;Flink适合对精确性要求高、更复杂的流处理任务;而Storm则适合对实时性要求极高的场景。选择何种技术取决于具体需求和场景。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值