Storm里的Stream grouping

Stream grouping:

  • Shuffle Grouping:  随机分组, 随机分发stream里的tuple,并保证每个bolt能接收到的tuple数目大致相等。

  • Fields Grouping:  字段分组, 比如按userid来分组, 具有相同userid的tuple会被分发到相同的bolt里的一个task,而不同的userid则会被分配到不同的bolt里的task。

  • All Grouping:  广播分组,对于每一个tuple,所有的bolt都会收到。

  • Global Grouping:  全局分组, 是将所有源实例产生的tuple发送到一个单独的目标实例(特别地,ID 最低的任务)中。

  • Non Grouping:  不分组,意思是说stream不关心到底谁会收到它的tuple。目前这种分组和Shuffle grouping是一样的效果, 但有一点不同的是storm会把这个bolt放到这个bolt的订阅者同一个线程里面去执行。

  • Direct Grouping:  直接分组, 这是一种比较特别的分组方法,由源决定哪个组件将接收tuple的分组。只有被声明为Direct Stream的消息流可以声明这种分组方法。且tuple必须使用emitDirect方法来发射。

  • Local or shuffle grouping:  如果目标bolt有一个或者多个task在同一个工作进程中,tuple将会被随机发生给这些tasks。否则,和普通的Shuffle Grouping行为一致


BaseBasicBolt 与 BaseRichBolt 的区别。

BaseRichBolt

You must – and are able to – manually ack() an incoming tuple.Can be used to delay acking a tuple, e.g. for algorithms that need to work across multiple incoming tuples.

BaseBasicBolt

Auto-acks the incoming tuple at the end of its execute() method.These bolts are typically simple functions or filters.




转载于:https://my.oschina.net/zyqjustin/blog/400655

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值