在拓扑图中,每个bolt接受一个spout或者bolt的数据,但是每一个spout或者bolt有多个实例,因此哪一个接受哪一个bolt或者spout实例的数据需要stream grouping。
Storm定义了七种内置数据流分组的方式:
1.Shuffle grouping(随机分组):这种方式会随机分发tuple给bolt的各个task,每个bolt实例接收到相同数量的tuple。
2.Fields grouping(按字段分组):根据指定字段的值进行分组。比如说,一个数据流根据'word'字段进行分组,所有具有相同的'word'字段值的tuple会路由到同一个bolt的task中。
3.All grouping(全复制分组):将所有的tuple复制后分发给所有的bolt task。每个订阅数据流的task都会接收到tuple的拷贝。
4.Globle grouping(全局分组):这种分组方式将所有的tuples路由到唯一一个task上。Storm按照最小的taskID来选取接收数据的task。注