Cassandra不是从Java10开始的

Cassandra不是从Java10开始的,cassandra,cassandra-3.0,Cassandra,Cassandra 3.0,我有一个全新的Windows 10 Home安装,安装了全新的JDK 10.0.1(这是Oracle在我访问JDK下载站点时推荐的)。我刚刚下载了Cassandra 3.11.2,将其卸载,并将bin目录放在我的类路径上 当我尝试使用Cassandra-f命令启动Cassandra时,出现以下错误: PS C:\javatools> cassandra -f *-----------------------------------------------------------------

我有一个全新的Windows 10 Home安装,安装了全新的JDK 10.0.1(这是Oracle在我访问JDK下载站点时推荐的)。我刚刚下载了Cassandra 3.11.2,将其卸载,并将bin目录放在我的类路径上

当我尝试使用
Cassandra-f
命令启动Cassandra时,出现以下错误:

PS C:\javatools> cassandra -f
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
WARNING! Automatic page file configuration detected.
 It is recommended that you disable swap when running Cassandra
 for performance and stability reasons.
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
Failed 64-bit check. Re-running to get version from 32-bit
*---------------------------------------------------------------------*
*---------------------------------------------------------------------*
Cassandra 3.0 and later require Java 8u40 or later.
Java10显然是“Java8Rel40或更高版本”。我验证了我实际上正在运行我认为是的Java版本:

PS C:\javatools> java -version
java version "10.0.1" 2018-04-17
Java(TM) SE Runtime Environment 18.3 (build 10.0.1+10)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.1+10, mixed mode)

我如何才能让Cassandra认识到,事实上,我有“Java8U40或更高版本”?

Cassandra不支持任何比Java8更新的Java版本

参考资料如下:

  • 拒绝针对Java 9的错误报告:
  • 拒绝针对Java 10的错误报告:
此外,尽管文件确实表明这是一项“正在进行的工作”,但它确实在页面上表明了以下内容:

先决条件

Java 8的最新版本,即Oracle Java标准版 8或OpenJDK 8。验证您是否拥有正确的java版本 已安装,键入java-version

虽然它没有明确表示“不支持Java9和更高版本”,但这显然是从这个指标推断出来的


最后,误导性的错误消息似乎是wontfix项。

我已经设法在本地主机(ubuntu 18.04)上的java-11-openjdk-amd64上运行了cassandra 3.11.3。 (奇怪的是,java版本显示的是
openjdk版本“10.0.1”2018-04-17

我在jvm.options中做了很多调整,因为许多gc选项不再受支持,而且ThreadPriorityPolicy不能设置为42。(最后一件事是最烦人的:它真的很好压缩线程的低优先级)


另外,要运行
nodetool
我必须通过
JAVA\u HOME

指定jvm 1.8,目前开发社区中有一些讨论,关于如何处理JAVA新的6个月发布计划。但是坚持使用Java 8,你就不会出错。这让我很困惑,像我这样的敏捷开发人员是如何坚持为他们的用户提供超短的发布周期(例如2周),然后当我们自己的供应商开始做类似的事情时,他们会变得非常不正常。轻微的更正:CASSANDRA-9608没有被拒绝,它处于“准备提交”状态。鉴于Java9已经过时,甚至不再可下载,我不完全确定这有多大帮助。加上14446票确实引用了9608作为“证明”,所以…我相信计划是在cassandra 4.0上支持java 11。您已经成功运行它,这对其他人没有帮助。您应该更准确地了解您使用了哪些选项和参数!我没有保存配置文件,但重复我的调查并不困难。只要10-15分钟,瞧,卡桑德拉正在工作。我怀疑仅仅通过调整jvm选项就可以“使用cassandra”。您可能已经设法启动了它,但在Java11上正常工作而不出现问题则是另一回事。2.“在jvm.options中做了很多调整”与10-15分钟和瞧…1相矛盾。嗯,我是在我的工作电脑上做的,它不是生产电脑。但我能够与cassandra(插入数据的压力测试和查询)进行交互,没有任何问题。有一个已知的回归绑定到ThreadPriorityPolicy=42:cassandra将无法将压缩线程设置为低优先级。但是如果在稳定状态下有一个两cpu的空闲内核,那么这就不是问题。最烦人的事情是如何在没有初始化脚本的情况下在命令行中运行cassandra<代码>sudo-u cassandra cassandra。在每次尝试运行tume之后,您都会看到需要注释的下一个jvm选项。10-15分钟,瞧。