如何更新 Cassandra 集群的配置
How to update configuration of a Cassandra cluster
我有一个 3 节点的 Cassandra 集群,我想对 cassandra.yaml
做一些调整
我的问题是,我应该如何执行此操作?一次一个节点,或者有没有办法在不关闭节点的情况下实现它?
顺便说一句,我使用的是 Cassandra 2.2,这是一个生产集群。
这里有多种方法:
如果编辑cassandra.yaml文件,需要重启cassandra重新读取该文件的内容。如果您一次重新启动所有节点,您的集群将不可用。一次重新启动一个节点几乎总是安全的(前提是您具有合理的复制因子和一致性级别)。如果您的集群配置为在机架或数据中心中断后仍然存在,那么您可以安全地同时重启更多节点。
许多设置无需通过 JMX 重新启动即可更改,但我手边没有文档 link。通过 JMX 进行更改不会更改 cassandra.yml,因此您还需要更新它,否则您的配置将在节点重新启动时恢复为文件中的内容。
如果您使用的是 DSE,OpsCenter 的生命周期管理器功能使更新配置成为一件简单的点击操作(免责声明,我有偏见,因为我是 LCM 开发人员)。
我有一个 3 节点的 Cassandra 集群,我想对 cassandra.yaml
做一些调整我的问题是,我应该如何执行此操作?一次一个节点,或者有没有办法在不关闭节点的情况下实现它?
顺便说一句,我使用的是 Cassandra 2.2,这是一个生产集群。
这里有多种方法:
如果编辑cassandra.yaml文件,需要重启cassandra重新读取该文件的内容。如果您一次重新启动所有节点,您的集群将不可用。一次重新启动一个节点几乎总是安全的(前提是您具有合理的复制因子和一致性级别)。如果您的集群配置为在机架或数据中心中断后仍然存在,那么您可以安全地同时重启更多节点。
许多设置无需通过 JMX 重新启动即可更改,但我手边没有文档 link。通过 JMX 进行更改不会更改 cassandra.yml,因此您还需要更新它,否则您的配置将在节点重新启动时恢复为文件中的内容。
如果您使用的是 DSE,OpsCenter 的生命周期管理器功能使更新配置成为一件简单的点击操作(免责声明,我有偏见,因为我是 LCM 开发人员)。