当您添加更多节点时,Storm如何处理字段分组?

Jam*_*mes 2 real-time apache-storm

只是阅读有关风暴的更多细节,并且发现它能够进行字段分组,例如,如果你计算每个用户的推文,并且你有两个任务,其中一个字段分组为user-id,则相同的用户ID将被发送到相同的任务.

所以任务1在内存bob中可以有以下计数:10 alice:5

任务2可能在记忆吉尔中有以下计数:10乔:4

如果我向群集中添加了一台新机器以增加容量并运行重新平衡,那么我在内存中的计数会怎样?你会开始让不同用户的用户?

use*_*864 5

使用字段分组,我们可以指导特定字段转到特定任务.

字段分组:流按分组中指定的字段进行分区.例如,如果流按"user-id"字段分组,则具有相同"user-id"的元组将始终执行相同的任务,但具有不同"user-id"的元组可能会执行不同的任务.

这些任务在风暴的生命周期中始终是静态的,您可以使用rebalance执行者(线程)的数量来改变.在向集群添加新节点的情况下,您可以重新配置要运行的执行程序数,而无需关闭拓扑但无论任务数量保持不变.只是添加一个新节点可以通过调整风暴的并行性来提高性能.