我可以动态增加 运行 Storm 拓扑的并行度吗
Can I increase parallelism of running Storm topology dynamically
Storm Version: 1.2.1
与 link here 一样,以下是重新平衡风暴拓扑的语法:
storm rebalance topology-name [-w wait-time-secs] [-n new-num-workers] [-e component=parallelism]*
我有一个简单的拓扑结构,其中有一些 bolt BoltB
运行 paralleilism 5 和 numTasks = 1,我 运行 以下命令:
storm rebalance myTopo -n 5(same as earlier) -w 20 -e BoltB=10
它停用了拓扑,但以 BoltB
的相同并行数激活了它,我是否遗漏了什么,这应该以这种方式工作吗,我是否必须为 [=13= 设置 numTasks ] 更高才能实现这个?
简而言之,在您提交拓扑后,Storm 拓扑中组件的任务数是静态的。因此,如果您在拓扑设置中为 boltB
执行 setNumTasks(1)
,那么将永远只有 1 个 boltB
实例,这意味着将只有 1 个线程 运行 boltB
一次。
您可以将任务视为在不重新部署的情况下可以分布 boltB
工作的线程数上限。 Storm 为每个任务创建一个螺栓实例,然后在设置期间通过 parallelism_hint
参数将它们分布到您告诉它使用的多个线程中。
parallelism_hint
设置螺栓的初始执行器(线程)数。可以通过 rebalance 命令在不重新部署拓扑的情况下更改执行器的数量,但是不能将执行器的数量提高到高于任务的数量。
Storm Version: 1.2.1
与 link here 一样,以下是重新平衡风暴拓扑的语法:
storm rebalance topology-name [-w wait-time-secs] [-n new-num-workers] [-e component=parallelism]*
我有一个简单的拓扑结构,其中有一些 bolt BoltB
运行 paralleilism 5 和 numTasks = 1,我 运行 以下命令:
storm rebalance myTopo -n 5(same as earlier) -w 20 -e BoltB=10
它停用了拓扑,但以 BoltB
的相同并行数激活了它,我是否遗漏了什么,这应该以这种方式工作吗,我是否必须为 [=13= 设置 numTasks ] 更高才能实现这个?
简而言之,在您提交拓扑后,Storm 拓扑中组件的任务数是静态的。因此,如果您在拓扑设置中为 boltB
执行 setNumTasks(1)
,那么将永远只有 1 个 boltB
实例,这意味着将只有 1 个线程 运行 boltB
一次。
您可以将任务视为在不重新部署的情况下可以分布 boltB
工作的线程数上限。 Storm 为每个任务创建一个螺栓实例,然后在设置期间通过 parallelism_hint
参数将它们分布到您告诉它使用的多个线程中。
parallelism_hint
设置螺栓的初始执行器(线程)数。可以通过 rebalance 命令在不重新部署拓扑的情况下更改执行器的数量,但是不能将执行器的数量提高到高于任务的数量。