web-dev-qa-db-ja.com

Cassandra 3.0以降にはJava 8u40以降が必要です

Datastaxでcassandra3.0を実行しようとしています。しかし、Cassandra3.0以降にはJava8u40以降が必要であるというエラーが表示されます。

Javaをインストールし、jdk1.8.0_65を/usr/local/Javaに移動し、Java_HOMEを/usr/local/Java/jdk1.8.0_65に設定しました。

しかし、私はまだ次のエラーに直面しています:

Cassandra 3.0以降には、Java8u40以降が必要です。

12
Nandakishore

Cassandra 3.2 DataStax DistributionrpmをCentOS7にインストールしましたが、同じ問題が発生しました。Cassandra起動スクリプト/etc/rc.d/init.d/cassandra finds 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のシンボリックリンクにします。

5
maczniak

Javaバージョン。Javaバージョンが後で "1.8.0_40"の場合。このファイルApache-cassandra-3.7\conf\cassandra-envに移動します。 ps1を検索し、このWord JVM_VERSION.CompareTo( "1.8.0_40")を検索してから、バージョンに変更します。たとえば、Java 1.8.0_102を使用する場合は、JVM_VERSION.CompareTo( "1.8.0_102]に変更します。 ")。

さて、確認してください。それが動作します。

3
Prasad

以下は、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
2
Varun

私は通常、特定のJava_HOMEDataStaxで提供される$DSE_DIR/resources/cassandra/conf/cassandra.in.shおよび$DSE_DIR/bin/dse.in.shスクリプトに追加することでこれを解決します。
それぞれにJava_HOME=/usr/local/Java/jdk1.8.0_65を追加します。 (または、これらのファイルを再編集せずにJVMを交換できるようにする場合は、symlink。)

2
Sean Durity
  1. このコマンドを使用してJavaの最初のバージョンを確認してくださいJava -version
  2. このコマンドを使用してJavaのパスを確認してくださいecho $Java_HOME
1
mahendra singh

私も同じ問題を抱えています。私の解決策は、ファイルApache-cassandra-3.7/bin/cassandraを編集することです。 「#!/ bin/sh」を含む行の下(2行目)に次のような行を置くことができます

Java_HOME="/path/of/your/jdk"

例:

Java_HOME="/opt/jdk1.8.0_101"

このソリューションがあなたや他の人々に役立つことを願っています

1
Kentang

cassandraサービスがJavaバージョンを alternatives からのみ取得するようです。

Sudo alternatives --config Java

...そこでJava 9を選択しないでください。

Sudo service cassandra start

/etc/cassandra/default.conf/jvm.optionsにはさらにJVMパラメータがあります。

0
Martin Zeitler

alternativesコマンドを使用してみてください:

$ 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

次のコマンドを使用します。

Sudo add-apt-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer
0
Neeraj Sharma

nodetoolはまだ以前のJavaバージョンにアクセスしている可能性があり、私も同じ問題に直面しました。

短いこれを行う

Sudo vim /etc/environmentこの行を追加しますJava_HOME = "/ usr/lib/jvm/Java-8-Oracle/jre/bin/Java"

source /etc/environment

echo $Java_HOME

nodetool status

長い間これを行う

手順に従ってください ここ システムにインストールされているJavaのバージョンをインストールして変更してください。それは非常によく説明されています。

0
mehnaazm