我有一个使用zookeeper的nimbus+storm集群,我希望移动集群并将其指向一个新的zookeeper。你知道这是否可行吗?我能保留旧Zookeeper的所有信息并保存在新的里面吗?有没有可能做到不停机?
我在网上查过这个程序,但没找到多少。
它会像在两个主机中更改storm.yml文件一样简单。和工作节点?之后需要重新启动吗?
# storm.zookeeper.servers:
# - "server1"
# - "server2"
我有一个使用zookeeper的nimbus+storm集群,我希望移动集群并将其指向一个新的zookeeper。你知道这是否可行吗?我能保留旧Zookeeper的所有信息并保存在新的里面吗?有没有可能做到不停机?
我在网上查过这个程序,但没找到多少。
它会像在两个主机中更改storm.yml文件一样简单。和工作节点?之后需要重新启动吗?
# storm.zookeeper.servers:
# - "server1"
# - "server2"
2条答案
按热度按时间vuv7lop31#
让我建议一个黑客在这里。这是微软为hdinsight集群上的迁移提供的一个脚本,但您可以更改它并根据需要使用它。
脚本可从以下位置下载:https://github.com/hdinsight/hdinsight-storm-examples/tree/master/tools/zkdatatool-1.0 您可以在这里阅读更多信息:https://blogs.msdn.microsoft.com/azuredatalake/2017/02/24/restarting-storm-eventhub/
我以前在paas集群之间迁移一些东西时使用过它,我可以确认它可以正常工作!
jei2mxaa2#
如果您只是更改storm.yml,您将把storm指向一个新的空zookeeper集群,这就像您刚刚从头安装了storm一样。更可能的情况是,您希望扩展zookeeper集群以包含新机器,然后更新storm.yml以指向新机器,然后收缩集群以排除要移动的机器。这样,即使您已移动到其他物理机器,zookeeper仲裁也会得到保留。
在zookeeper 3.5上使用动态重新配置更容易做到这一点http://zookeeper.apache.org/doc/r3.5.5/zookeeperreconfig.html. 我不确定storm是否会在zookeeper 3.5上运行,但您可以考虑在扩展/缩小集群之前,先研究是否可以升级到3.5。
否则,您将不得不执行滚动重新启动来添加新的zookeeper节点,然后在集群稳定后执行另一个操作来删除旧机器。