2015-12-21 320 views
8

我试图在datastax中运行cassandra 3.0。但是我收到一个错误,说 Cassandra 3.0及更高版本需要Java 8u40或更高版本。Cassandra 3.0及更高版本需要Java 8u40或更高版本

我已安装java并将jdk1.8.0_65移至/usr/local/java,并将JAVA_HOME设置为/usr/local/java/jdk1.8.0_65

但我仍然面临以下错误。

卡桑德拉3.0及更高版本需要安装Java 8u40或更高版本。

+0

你使用什么样的分布?我为Ubuntu找到了一个解决方案,如果能帮上忙,我会写出来。 –

+0

我正在使用datastax。从那里学习cassandra,如此使用datastax分发。 – Nandakishore

回答

4

我在CentOS 7上安装了Cassandra 3.2 DataStax Distribution rpm,并且遇到了同样的问题。 Cassandra启动脚本/etc/rc.d/init.d/cassandra仅在预定义路径列表中找到java二进制文件。

JVM_SEARCH_DIRS="/usr/lib/jvm/jre /usr/lib/jvm/jre-1.7.* /usr/lib/jvm/java-1.7.*/jre"

如果您的Java二进制文件/usr/jdk64/jdk1.8.0_60/jre/bin/java,追加/usr/jdk64/jdk1.8.0_60/jreJVM_SEARCH_DIRS,或使/usr/lib/jvm/jre符号链接/usr/jdk64/jdk1.8.0_60/jre

2

我通常通过将我的具体JAVA_HOME添加到DataStax提供的$DSE_DIR/resources/cassandra/conf/cassandra.in.sh$DSE_DIR/bin/dse.in.sh脚本中来解决此问题。
地址:分别为JAVA_HOME=/usr/local/java/jdk1.8.0_65。 (或者symlink,如果您希望能够在不重新编辑这些文件的情况下交换JVM)。

0

使用以下命令。使用此命令java -version

  • 检查的java的路径中使用此命令java的

    sudo add-apt-repository ppa:webupd8team/java 
    sudo apt-get update 
    sudo apt-get install oracle-java8-installer 
    
  • 1
    1. 检查第一个版本echo $JAVA_HOME
    +1

    我先''update-java-alternatives -s java-8-oracle'第一个,但是这并没有解决'$ JAVA_HOME'指向的软链接(即仍在OpenJDK上)......修复了软链接问题。 –

    1

    以下工作对我来说是RHEL系统上:

     
    yum install java-1.8.0-openjdk 
    ln -nfs /usr/lib/jvm/jre-1.8.0-openjdk.x86_64 /etc/alternatives/jre 
    ln -nfs /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java /etc/alternatives/java 
    
    3

    检查您的Java版本。如果你的Java版本是“1。8.0_40“之后 转到这个文件apache-cassandra-3.7 \ conf \ cassandra-env.ps1并搜索这个单词JVM_VERSION.CompareTo(”1.8.0_40“),然后转到你的版本 例如,如果你使用java 1.8 .0_102然后换JVM_VERSION.CompareTo( “1.8.0_102”)。

    现在,检查,它会工作。

    1

    我也有同样的问题。我的解决办法是编辑文件Apache的卡桑德拉-3.7/bin中/卡桑德拉下面一行含有 “#/ bin/sh的!”(2号线),你可以把线像下面

    JAVA_HOME="/path/of/your/jdk" 
    

    例如:

    JAVA_HOME="/opt/jdk1.8.0_101" 
    

    希望这个解决方案可以帮助你和其他人

    0

    尝试使用替代命令:

    $ nodetool 
    Cassandra 3.0 and later require Java 8u40 or later. 
    $ java -version 
    java version "1.7.0_151" 
    
    $ sudo yum install java-1.8.0-openjdk 
    ... 
    $ sudo alternatives --config java 
    
    There are 2 programs which provide 'java'. 
    
    Selection Command 
    ----------------------------------------------- 
    *+ 1   /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java 
    2   /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java 
    
    Enter to keep the current selection[+], or type selection number: 2 
    
    $ java -version 
    openjdk version "1.8.0_151" 
    OpenJDK Runtime Environment (build 1.8.0_151-b12) 
    OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode) 
    $ nodetool 
    usage: nodetool [(-p <port> | --port <port>)] 
        [(-pwf <passwordFilePath> | --password-file <passwordFilePath>)] 
        [(-h <host> | --host <host>)] [(-u <username> | --username <username>)] 
        [(-pw <password> | --password <password>)] <command> [<args>] 
    
    0

    看来,仿佛cassandra服务会拿起从Java版本仅限于alternatives

    sudo alternatives --config java 
    

    ...不要在那里选择Java 9。

    sudo service cassandra start 
    

    /etc/cassandra/default.conf/jvm.options还有JVM参数。

    相关问题