Storm:Trident

来源:互联网 发布:淘宝购物流程教学视频 编辑:程序博客网 时间:2024/05/12 03:17

Trident在Storm上提供了高层抽象。它抽象掉了事物处理和状态管理的细节。特别是,它可以让一批tuple进行离散的事物处理。此外,它还提供了抽象操作,允许topology在数据上执行函数功能、过滤和聚合操作。

Trident Topology:TridentTopology

Trident spout:
不像Storm的spout,Trident spout必须成批地发送tuple。
TridentSpout函数仅仅是简单地提供了到BatchCoordinator和Emitter的访问方法,并且声明发射的tuple包含哪些字段。

Trident运算:
在Trident中,处理事件的逻辑组件成为运算。运算有:fiter和function。
function和Storm的bolt类似,读取tuple并且发送新的tuple。其中一个区别是,Trident function只能添加数据。function发送数据时,将新字段添加到tuple中,并不会删除或者变更已有的字段。
function声明的字段数量必须和它发射的字段数一致,否则,会抛出IndexOutOfBoundsException异常。

Trident聚合器:
和function类似,aggregator(聚合器)允许topology组合tuple。不同的是,它会替换tuple的字段和值。有三种聚合器:CombinerAggregator、ReducerAggregator和Aggregator。

Trident状态:
在Trident中,持久化操作从状态管理开始。Trident对状态有底层的操作原语,但是不同于Storm API ,它不关心要哪些数据作为状态存储或者如何存储这些状态。

spout类型:非事务型spout、不透明型spout、事务型spout。
非事务型状态、不透明型状态、重复事务型状态。

重放数据的场景:状态更新成功了,但是下游处理失败了。

参考《Storm分布式实时计算模式》

0 0
原创粉丝点击