更新之前停止和启动cassandra节点的最快方法

时间:2019-02-22 05:42:14

标签: cassandra

在应用程序更新和数据库更新之前以及随后启动它们之前,如何停止Cassandra节点的最佳方法是什么?目前,我正在遍历每个节点VM,并使用命令sudo service cassandra stop停止它们,然后在完成更新后,我执行相同的操作,只是使用命令sudo service cassandra start启动它们。节点很少,就可以了,但是我在服务器上有20个节点,这样做需要一些时间。

有没有更好/更有效的方法?

1 个答案:

答案 0 :(得分:0)

执行此操作的方法有很多-在外壳+ for中使用ssh循环,使用pssh等。您只需要记住,执行滚动重新启动会更好各个Cassandra节点,因此您需要等到Cassandra重新启动。像这样:

for host in `cat your-host-list.txt`; do
   ssh user@${host} 'sudo service cassandra stop && your_update_command && sudo service cassandra start
done

或使用pssh稍微容易一些:

pssh -l user -h your-host-list.txt -p 1 -t 0 'sudo service cassandra stop && your_update_command && sudo service cassandra start
  • -p 1告诉您只能并行执行一个命令
  • t 0指示等待执行而不会超时