0

我在下面阅读了有关 Storm 的帖子。 Storm并行中的“任务”是什么

问题和答案都对我这个Storm的初学者很有帮助。不过我还是有一些意见。回答中说,

每个 executor 运行多个任务并不会提高并行度——一个 >executor 总是有一个线程用于它的所有任务,这意味着任务 > 在一个 executor 上串行运行。

是不是意味着Storm的“并行计算”专注于“并行机器”。正如 Miguno 所提到的,它为我们提供了扩展集群机器的灵活性。但是机器集成的CPU内核越来越多,如果我们对集群中的每台机器使用并行计算会更有效吗?(某种程度上我觉得每台机器的多核也是一个“集群”)。还有一些非常有用的并行编程库,如 AKKA、Disruptor、Killim 等,使我们能够方便地开发并行程序。

我不确定我是否对 Storm 框架(或这种可能计算框架)有误解?

谢谢,

4

1 回答 1

0

有点困惑你到底在问什么。正如同一篇文章中提到的,通过增加Worker Process你可以增加跨集群运行以执行任务的 Java 进程的数量。

维基它说

Config.TOPOLOGY_WORKERS:设置用于执行拓扑的工作进程数。例如,如果您将此设置为 25,则整个集群中将有 25 个 Java 进程执行所有任务。如果拓扑中所有组件的并行度为 150,则每个工作进程将有 6 个任务在其中作为线程运行。

它可以通过做类似的事情来完成

    Config conf = new Config();
    conf.setNumWorkers(25); 

通过说并行计算,如果您打算增加线程数量,那么您应该查看executors,通过增加相同的数量,您可以为每个组件生成更多线程。从你提到的同一篇文章中它说

请注意,从 Storm 0.8 开始,parallelism_hint 参数现在指定了该 bolt 的初始执行器数量(不是任务!)。

例如topologyBuilder.setBolt("green-bolt", new GreenBolt(), 2)

如果我误解了您的要求,请纠正我

于 2013-10-21T15:16:14.437 回答