Cassandra无法创建Java虚拟机

hyv*_*bug 5 java cassandra

我在Mac OS上运行,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.```
Run Code Online (Sandbox Code Playgroud)

我不知道为什么会这样。我做了适当的

export CASSANDRA_HOME=/usr/local/apache-cassandra-3.0.10
export PATH=$PATH:$CASSANDRA_HOME/bin
Run Code Online (Sandbox Code Playgroud)

但仍然无法正常工作。

我的Java版本有问题吗?如何进行Cassandra的全新安装/使它正常工作?

Aar*_*ron 1

在该版本的 Cassandra 中,该设置在jvm.optionsUseParNewGC文件中定义。这是 CMS GC JVM 设置块中的第一个设置。

#################
#  GC SETTINGS  #
#################

### CMS Settings

-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled
Run Code Online (Sandbox Code Playgroud)

我怀疑正在发生两件事之一。

  1. 可能-XX:+UseParNewGC未正确指定该设置。在 jvm.options 文件中仔细检查这一点。
  2. 更有可能的情况是,之前对我上面显示的块上方的jmv.options 文件进行的错误编辑导致了该问题。由于该-XX:+UseParNewGC行是该块中的第一行,因此错误似乎就在这里。上面的部分是设置堆大小参数的地方,因此我会检查是否有未注释的内容或者引用是否未正确关闭。
  3. 使用java -version. 较新版本的 Java(例如 10 或 11 及更高版本)不支持并行垃圾收集器。此外,Cassandra 3.x 仅在 Java 8 上运行,因此您确实没有理由使用这样的最新 JVM。