我想将 Cassandra 集群上的 Java 版本从 8 升级到 11。如何更好地做到这一点?我可以逐个节点升级 Java 版本吗?例如:
- 停止1个节点
- 升级 Java
- 启动1个节点
并对另一个节点重复这些步骤,或者我是否需要在升级后修复节点。现在节点:
- Cassandra 4.0.5
- Java 8
我会很高兴听取您的建议。
我想将 Cassandra 集群上的 Java 版本从 8 升级到 11。如何更好地做到这一点?我可以逐个节点升级 Java 版本吗?例如:
并对另一个节点重复这些步骤,或者我是否需要在升级后修复节点。现在节点:
我会很高兴听取您的建议。
您的原始步骤应该可以正常工作。无需进行修复。
只需停止节点。重新指向/升级 Java 到 Java 11,并确保命令
java -version
返回如下内容:重新启动节点,确保其启动,并对集群中的所有其他节点重复此操作。
升级到 Java 11 时,还需要执行一些其他步骤。特别是,您需要按照Cassandra 4.0 ( CASSANDRA-9608
conf/jvm11-server.options
)中所述配置 Java 11 的 JVM 选项:NEWS.txt
我应该注意到,自 Cassandra 4.0.2( CASSANDRA-16894 )以来,Java 11 已完全受支持并且不再处于实验状态。
您将需要配置必要的 JVM 选项,包括垃圾收集器。CMS GC 是默认设置,
jvm11-server.options
但它已在 Java 11(JDK-8142518)中弃用,因此如果您愿意,则需要明确启用 G1 GC。附注:
nodetool drain
在关闭 Cassandra 之前强制将内存表刷新到磁盘是一个好主意,这样提交日志就不必在下次启动时重播。干杯!