当前位置:  开发笔记 > 大数据 > 正文

重新平衡后风暴任务状态是否会转移到新的执行者身上?

如何解决《重新平衡后风暴任务状态是否会转移到新的执行者身上?》经验,为你挑选了1个好方法。

这是我在阅读之后想出的一个问题: Storm并行性中的"任务"是什么

如果我需要在bolt的内部状态中保留一些信息,例如,在经典的单词计数用例中,保持在hashmap中看到的每个单词的计数.在执行"rebalance"命令之后,许多螺栓的任务被移动到另一个执行器,该执行器可能在另一个JVM或甚至另一台机器中.将bolt的内部状态(本例中的字数hashmap)转移到新环境(实例/ JVM /机器)吗?

当然,将字数哈希映射放在像Zookeeper这样的中心位置不会有这个问题.但出于性能的考虑,似乎我们有时需要将内容保存在内存中.



1> user2720864..:

运行重新平衡后,将发生以下情况

    它将首先停用当前拓扑

    然后,它将在集群内均匀分配工作人员

    然后,拓扑将返回其先前的激活状态

以下是Nathan Marz 的评论,应该有助于消除您的疑虑.

重新平衡等同于那些在另一台机器上被杀死并从头开始创建的工人.如果你想要维持"状态",我建议你使用像Trident这样的东西,让你的状态在DFS上同步

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有