Apache Storm 并行性如何工作?

How Apache Storm parallelism works?

我是 Apache Storm 的新手,想知道并行提示是如何工作的。

例如我们有一个包含两个元组 <4>,<6> 的流,一个 spout 每个执行者只有一个任务,我们有一个螺栓来对元组执行一些操作并且并行度提示为 2,所以我们有两个这个螺栓的执行者即A和B,关于这个,我有3个问题。

  1. 考虑到上述情况,我们的包含值 4 的元组可能由 A 处理,而另一个包含值 6 的元组由 B​​ 处理。
  2. 如果按照问题(1)中提到的方式进行处理,那么它不会影响顺序重要的操作。
  3. 如果不以这种方式进行处理,则意味着两个元组都将转到同一个执行程序,那么并行的好处是什么。
  1. Considering above scenario is this possible that our tuple which contain value 4 is processed by A and another tuple which contain value 6 is processed by B.

是的。

  1. If processing done in this manner i.e. mentioned in question (1), then won't it impact on operation in which sequence matter.

视情况而定。您很可能可以控制 spout 中元组的顺序。如果顺序很重要,建议减少并行度或使用 fields grouping,以确保相互依赖的元组转到同一个执行程序。如果顺序无关紧要,请使用 shuffleGrouping 或 localOrShuffleGrouping 从并行处理中获益。

  1. If processing not done in this manner, means both tuples going to same executor then what is the benefit of parallelism.

如果两个元组都交给同一个执行者,显然没有任何好处。