我在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.```

我不知道为什么会这样。我做了适当的
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设置中的第一个设置。

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

### CMS Settings

-XX:+UseParNewGC
-XX:+UseConcMarkSweepGC
-XX:+CMSParallelRemarkEnabled

我怀疑发生了两件事之一。
  • 可能未正确指定-XX:+UseParNewGC设置。在您的jvm.options文件中再次检查。
  • 更有可能的情况是,在我上面显示的代码块上方对jmv.options文件进行的先前错误编辑导致了此问题。由于-XX:+UseParNewGC行是此块中的第一行,因此错误似乎在这里。上面的部分是设置堆大小参数的位置,因此我将检查是否未注释某些内容,或者是否未正确关闭引号。
  • 使用java -version检查您的Java版本。较新版本的Java(例如10或11及更高版本)不支持并行垃圾收集器。另外, Cassandra 3.x仅在Java 8 上运行,因此您实际上没有理由使用这样的最新JVM。
  • 关于java - Cassandra无法创建Java虚拟机,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54414075/

    10-14 14:37
    查看更多