Parallel processing 什么是「;任务“;暴风雨中

Parallel processing 什么是「;任务“;暴风雨中,parallel-processing,apache-storm,topology,Parallel Processing,Apache Storm,Topology,我正试图通过阅读这篇伟大的文章来学习twitter风暴“ 然而,我对“任务”的概念有点困惑。任务是否为组件的运行实例(喷口或螺栓)?有多个任务的执行者实际上是说同一个组件被执行者执行了多次,对吗 此外,在一般的并行性意义上,Storm将为喷口或螺栓生成一个专用线程(执行器),但具有多个任务的执行器(线程)对并行性的贡献是什么?我认为在一个线程中有多个任务,因为一个线程按顺序执行,只会使线程成为一种“缓存”资源,从而避免为下一个任务运行生成新线程。我说得对吗 在花更多的时间调查之后,我可能会自己消

我正试图通过阅读这篇伟大的文章来学习twitter风暴“

然而,我对“任务”的概念有点困惑。任务是否为组件的运行实例(喷口或螺栓)?有多个任务的执行者实际上是说同一个组件被执行者执行了多次,对吗

此外,在一般的并行性意义上,Storm将为喷口或螺栓生成一个专用线程(执行器),但具有多个任务的执行器(线程)对并行性的贡献是什么?我认为在一个线程中有多个任务,因为一个线程按顺序执行,只会使线程成为一种“缓存”资源,从而避免为下一个任务运行生成新线程。我说得对吗

在花更多的时间调查之后,我可能会自己消除这些困惑,但你知道,我们都喜欢stackoverflow;-)

提前感谢。

免责声明:我在上面的问题中引用了您的来信

然而,我对“任务”的概念有点困惑。任务是否为组件的运行实例(喷口或螺栓)?有多个任务的执行者实际上是说同一个组件被执行者执行了多次,对吗

对,对

此外,在一般的并行性意义上,Storm将为喷口或螺栓生成一个专用线程(执行器),但具有多个任务的执行器(线程)对并行性有何贡献

每个执行器运行多个任务不会提高并行性级别——执行器总是有一个线程用于其所有任务,这意味着任务在执行器上串行运行

正如我在文章中所写,请注意:

  • 拓扑启动后,可以更改执行器线程的数量(请参阅
    storm rebalance
    命令)
  • 拓扑的任务数是静态的

根据定义,
#executors@miguno的不变量我有一个问题,假设您最初有一个执行任务的螺栓(如对一个数字批处理元组的分组操作),我如何垂直扩展它?据我所知,每个worker本质上都是拓扑的“镜像”,但我如何垂直扩展它以将负载分布到所有集群框中呢。在这种情况下,我希望将执行分组操作的螺栓数量从1更改为2(或更多)。您的输入澄清了这一点,这将是了不起的。Storm的缩放模型使用水平缩放,类似于其他处理技术,如Kafka Streams、ksqlDB或Spark。也就是说,您使用更多的工人进行向外扩展,而使用更少的工人进行向内扩展。这就是在所有集群机箱中分配负载的方式。(相比之下,垂直扩展为相同数量的工作线程提供了更多的资源,比如更快的CPU或更多的RAM。)例如,要从1个螺栓变为2个螺栓,您必须停止Storm拓扑,重新配置其并行度设置(“现在使用2个螺栓!”),然后重新启动/重新提交拓扑。与say,Kafka Streams不同,Storm不能在运行时弹性地伸缩或实时伸缩——它总是需要取下拓扑进行重新配置。我已经阅读了三次文档以消除相同的困惑,您解决了我的问题。