我在 Mac 操作系统上运行 cassandra -f
并立即发生这种情况:
[0.002s][warning][gc] -Xloggc is deprecated. Will use -Xlog:gc:/usr/local/apache-cassandra-3.0.10/logs/gc.log instead.
Unrecognized VM option 'UseParNewGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.```
我不知道为什么会这样。我做了正确的
export CASSANDRA_HOME=/usr/local/apache-cassandra-3.0.10
export PATH=$PATH:$CASSANDRA_HOME/bin
但它仍然无法正常工作。
这与我的 Java 版本有关吗?我怎样才能完全干净地安装 Cassandra/让它工作?
最佳答案
在该版本的 Cassandra 中,UseParNewGC
设置在 jvm.options 文件中定义。这是 CMS GC JVM 设置 block 中的第一个设置。
#################
# GC SETTINGS #
#################
### CMS Settings
-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
我怀疑正在发生以下两件事之一。
-XX:+UseParNewGC
设置可能未正确指定。在您的 jvm.options 文件中仔细检查这一点。- 更有可能的情况是,之前对 jmv.options 文件所做的错误编辑导致了我上面显示的 block 上方。由于
-XX:+UseParNewGC
行是此 block 中的第一行,因此错误出现 在这里。上面的部分是设置堆大小参数的地方,因此我会检查是否有未注释的内容或可能没有正确关闭引号。 - 使用
java -version
检查您的 Java 版本。较新版本的 Java(如 10 或 11 及更高版本)不支持并行垃圾收集器。此外,Cassandra 3.x 只能在 Java 8 上运行,因此您真的没有理由使用最新的 JVM。
关于java - Cassandra 无法创建 Java 虚拟机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54414075/