Apache storm Storm-动态增加执行器

Apache storm Storm-动态增加执行器,apache-storm,Apache Storm,在我看来,《暴风雨》有一些局限性 你能告诉我以下几点是正确的吗 工人数量应小于或等于执行者数量 执行者的数量应小于或等于任务的数量 考虑到以上两点,重新平衡仅适用于将执行器或工作人员移动到其他节点等 重新平衡无助于动态增加任务数 因此,根据以上几点,Storm不能完全扩展 您可以考虑任务作为螺栓/喷口的运行实例。这是固定的(静态的),并且在拓扑运行时永远不能更改?执行器实际上是可以动态更改的线程 如果设置numtasks=4,executors=2,则每个线程将运行2个任务。但是任务在执行器上连

在我看来,《暴风雨》有一些局限性

你能告诉我以下几点是正确的吗

  • 工人数量应小于或等于执行者数量
  • 执行者的数量应小于或等于任务的数量
  • 考虑到以上两点,重新平衡仅适用于将执行器或工作人员移动到其他节点等
  • 重新平衡无助于动态增加任务数
  • 因此,根据以上几点,Storm不能完全扩展

  • 您可以考虑<代码>任务<代码>作为螺栓/喷口的运行实例。这是固定的(静态的),并且在拓扑运行时永远不能更改?执行器实际上是可以动态更改的线程

    如果设置numtasks=4,executors=2,则每个线程将运行2个任务。但是任务在执行器上连续运行(每个线程一次运行一个任务)。因此,即使有4个螺栓实例,它们也不会同时运行。那又有什么用呢


    为每个执行器创建多个任务将使您能够灵活地使用
    rebalance
    命令更改执行器的数量,而不会破坏拓扑。因此,在将来,如果将额外的节点添加到集群中(或者出于任何原因),您可以很容易地将执行器的数量更改为4,这样现在对于每个任务都有一个专用线程来处理这个问题(为什么代码< >线程> p>您可以考虑<代码>任务<代码>作为螺栓/喷口的运行实例。这是固定的(静态的)并且在拓扑运行时不能更改?执行器实际上是可以动态更改的线程

    如果设置num tasks=4,executors=2,则每个线程将运行2个任务。但任务在执行器上串行运行(每个线程一次将运行一个任务)。因此,即使有4个螺栓实例,它们也不会同时运行。那么这有什么用呢


    为每个执行器创建多个任务将使您能够灵活地使用
    rebalance
    命令更改执行器的数量,而不会中断拓扑。因此,将来如果您向集群添加额外节点(或出于任何原因)您可以轻松地将执行器的数量更改为4,这样现在每个任务都有一个专用线程来处理该任务(为什么
    #threads是的,我同意你的评论。所以我的意思是,扩展对任务的数量有限制。如果执行者的数量等于任务的数量,这意味着每个执行者只有一个任务,那么根本没有扩展点。此时,我们需要完全部署一个新的拓扑。@HariprasadTaduru tastorm试图证明,sks并非总是在工作线程之间平均分布,但如果工作线程数为奇数,任务数为偶数:它就不能是对称的。即使一个螺栓/喷口类型的负载没有平均分布,基于所有螺栓/喷口,它确实是被划分的,并且您的工作线程共享拓扑的负载(有时不太好,取决于任务/执行者的数量)。它可以扩展,如果您希望更好,只需根据您的工作人员数量使用更多的任务/执行器,以便负载可以更好地分布在群集中。是的,我同意您的意见。因此,我的意思是,扩展对任务数目的限制。如果执行器的数量等于任务的数量,这意味着每个执行器都有只有一个任务,那么就根本没有扩展点。此时,我们需要完全部署一个新拓扑。@Hariprasadataduru任务并不总是在工作者之间平均分配,storm试图做到这一点,但如果你有奇数个工作者和偶数个任务:它就不能是对称的。即使你没有平均分配l对于一个螺栓/喷嘴类型,基于所有螺栓/喷嘴,它确实被划分,并且您的工作人员分担拓扑的负载(有时根据任务/执行者的数量而不是很好)。它可以扩展,如果您想要更好,只需根据工作人员的数量使用更多的任务/执行者,以便负载可以更好地分布在集群中。