我需要在Storm中(基于文档)的Storm中的功能,尚未实现。我需要在运行时添加更多任务,而无需具有最初的大量任务,因为它可能会导致性能问题。因为每个执行程序执行多个任务不会增加并行性的级别 - 执行程序始终具有其用于其所有任务的一个线程,这意味着任务在执行程序上串行运行。
我知道可以使用rebalance命令在运行时添加执行者ANS工作过程,并且有一条规则表明#opecutors< =#任务,这意味着该任务数量在运行时应该是静态的,但是我很好奇很难(如果不是不可能)将此功能添加到风暴中。
有没有办法在风暴中实现此功能,还是根本无法完成?如果有办法,请给我线索如何做。
不确定您的意思是"因为这些额外的任务串行运行"。
任务是风暴用于利用数据并行性。从理论上讲,可以添加代码以更改运行时的任务数量。但这将是一个巨大的变化,Afaik没有计划添加此功能。
比较http://storm.apache.org/releases/1.0.3/understanding-the-parelalism-of-a-storm-topology.html
因为将密钥分配给基于任务哈希的任务,因此更改任务数量将需要重新将所有密钥重新键重新进行新任务。如果操作员建立了基于密钥的内部状态,则该状态将需要通过密钥分区并相应地重新分配。