我试图在datastax中运行cassandra 3.0。但我得到一个错误说 Cassandra 3.0及更高版本需要Java 8u40或更高版本。
我已安装java并将jdk1.8.0_65移至/usr/local/java
并将JAVA_HOME设置为/usr/local/java/jdk1.8.0_65
。
但我仍然面临以下错误。
Cassandra 3.0及更高版本需要Java 8u40或更高版本。
答案 0 :(得分:5)
我在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/jre
附加到JVM_SEARCH_DIRS
,或为/usr/lib/jvm/jre
添加/usr/jdk64/jdk1.8.0_60/jre
符号链接。
答案 1 :(得分: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")。
现在,检查一下。它会起作用。
答案 2 :(得分:2)
我通常会通过将JAVA_HOME
添加到$DSE_DIR/resources/cassandra/conf/cassandra.in.sh
提供的$DSE_DIR/bin/dse.in.sh
和DataStax
脚本中来解决这个问题。
在每个中添加:JAVA_HOME=/usr/local/java/jdk1.8.0_65
。 (或symlink
,如果您希望能够在不重新编辑这些文件的情况下交换JVM。)
答案 3 :(得分:2)
以下适用于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
答案 4 :(得分:1)
java -version
echo $JAVA_HOME
答案 5 :(得分:1)
我也有同样的问题。我的解决方案是编辑文件apache-cassandra-3.7 / bin / cassandra。在包含“#!/ bin / sh”(第2行)的行下方,您可以放置如下所示的行
JAVA_HOME="/path/of/your/jdk"
示例:
JAVA_HOME="/opt/jdk1.8.0_101"
希望此解决方案可以帮助您和其他人
答案 6 :(得分:0)
使用以下命令。
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
答案 7 :(得分:0)
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
长期这样做
请按照here步骤安装和更改系统中安装的java版本。它解释得非常好。
答案 8 :(得分:0)
尝试使用 alternative 命令:
$ 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>]
答案 9 :(得分:0)
似乎cassandra
服务只会从alternatives获取Java版本。
sudo alternatives --config java
...不要在那里选择Java 9。
sudo service cassandra start
/etc/cassandra/default.conf/jvm.options
还有其他JVM参数。