如何缩小storm集群规模(离线一台主管机)
how to shrink the scale of storm cluster (offline one supervisor machine)
如标题。
我有一个包含 20 台机器的风暴集群,一台用于 nimbus,另外 19 台用于主管。
现在发现我们storm集群不需要那么多机器,想下线2台supervisor机器。
我不知道如何温和地做到这一点,只是停止 2 台机器中的主管进程?但是这两台机器里面有一些executor是在线服务的运行
任何建议都会有帮助,谢谢
我是凭记忆写的,所以请在非生产集群上尝试一下,然后再去做,然后发现我记错了什么。
如果您的拓扑是为处理消息丢失而编写的(即它们不关心至少一次,或者您正在使用 acking),您可以只杀死主管和工人。 Nimbus 会发现 supervisor 已经死了,并很快重新分配 executors。当新的执行者出现时,拓扑将处理丢失的消息,因为它们没有被确认。
如果无法处理消息丢失,可以停用 Storm 中的拓扑 UI,等待它们停止处理并杀死主管。然后重新激活拓扑,Nimbus 将重新分配它们。
如标题。
我有一个包含 20 台机器的风暴集群,一台用于 nimbus,另外 19 台用于主管。 现在发现我们storm集群不需要那么多机器,想下线2台supervisor机器。
我不知道如何温和地做到这一点,只是停止 2 台机器中的主管进程?但是这两台机器里面有一些executor是在线服务的运行
任何建议都会有帮助,谢谢
我是凭记忆写的,所以请在非生产集群上尝试一下,然后再去做,然后发现我记错了什么。
如果您的拓扑是为处理消息丢失而编写的(即它们不关心至少一次,或者您正在使用 acking),您可以只杀死主管和工人。 Nimbus 会发现 supervisor 已经死了,并很快重新分配 executors。当新的执行者出现时,拓扑将处理丢失的消息,因为它们没有被确认。
如果无法处理消息丢失,可以停用 Storm 中的拓扑 UI,等待它们停止处理并杀死主管。然后重新激活拓扑,Nimbus 将重新分配它们。