《Storm分布式实时计算模式》——3.2 Trident topology

本节书摘来自华章计算机《Storm分布式实时计算模式》一书中的第3章,第3.2节,作者:(美)P. Taylor Goetz Brian O’Neill 更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.2 Trident topology

为了满足这些需求,我们需要在topology中对疾病的发生进行统计。使用标准的Storm topology进行统计会遇到难题,因为tuple可能重复发送,这会导致重复计数的问题。下一节将会看到,Trident提供了操作原语来解决这个问题。
我们将使用的topology,如图3-1所示。
上述topology的代码如下:


ba3180aa11462bdd8e15d929f470895871b6e135


<a href=https://yqfile.alicdn.com/8f3ccc00d201386cd2c7e54e6d2b24079f053405.png
" >


faed3942e6aa21f4b3ca2e11c2697773aebf9916


<a href=https://yqfile.alicdn.com/341cd03b37714b631310fa1860e594409d79b95a.png" >

上述代码表现了不同Trident函数之间的布局关联方式。首先,DiagnosisEventSpout函数发射疾病事件。然后事件由DiseaseFilter函数过滤,过滤掉我们不关心的疾病事件。之后,事件由CityAssignment函数赋值一个对应的城市名。然后HourAssignment函数赋值一个表示小时的时间戳,并且增加一个key cityDiseaseHour到tuple的字段中,这个key包括城市、小时和疾病代码。后续就使用这个key进行分组统计并使用persistAggregate函数对统计量持久性存储。统计量传递给OutbreakDetector函数,如果统计量超过阈值,OutbreakDetector向后发送一个告警信息。最后DispatchAlert接收到告警信息,记录日志,并且结束流程。在后面,我们会深入了解每个步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值