java - Cassandra 2.0 及更高版本需要 Java 7u25 或更高版本,但我使用的是 8u60

标签 java linux cassandra centos

我正在尝试使用初始化脚本将 cassandra 作为服务运行,但我不断收到错误“Cassandra 2.0 及更高版本需要 Java 7u25 或更高版本。”

在初始化脚本中,我在 cassandra 用户下运行 cassandra:

#!/bin/bash
# init script for Cassandra.
# chkconfig: 2345 90 10
# description: Cassandra

. /etc/rc.d/init.d/functions

CASS_HOME=/etc/cassandra
CASS_BIN=$CASS_HOME/bin/cassandra
CASS_LOG=/var/log/cassandra/cassandra.out
CASS_USER="cassandra"
CASS_PID=/var/run/cassandra/cassandra.pid
prog=Cassandra

RETVAL=0
start() {
  if [ -f $CASS_PID ] && checkpid `cat $CASS_PID`; then
    echo "Cassandra is already running."
    exit 0
  fi
  echo -n $"Starting $prog: "
  daemon --user $CASS_USER $CASS_BIN -p $CASS_PID >> $CASS_LOG 2>&1
  usleep 500000
  RETVAL=$?
  if [ "$RETVAL" = "0" ]; then
    echo_success
  else
    echo_failure
  fi
  echo
  return $RETVAL
}

cassandra 用户肯定在运行 8u60:

> sudo runuser -l cassandra -c 'echo $JAVA_HOME'
/usr/java/jdk1.8.0_60
> sudo runuser -l cassandra -c 'java -version'
java version "1.8.0_60"
Java(TM) SE Runtime Environment (build 1.8.0_60-b27)
Java HotSpot(TM) 64-Bit Server VM (build 25.60-b23, mixed mode)

我修改了 cassandra-env.sh 脚本以打印出带有错误的用户和 java 版本,他们确认该脚本看到的是旧版本的 java,但我不确定当它看起来不错时这怎么可能对于 cassandra 用户。

Cassandra 2.0 and later require Java 7u25 or later. 
Found JVM 1.6.0, patch 38, current user cassandra.

感谢任何帮助!

最佳答案

它实际上并没有作为 cassandra 用户运行,只是在它的 uid 下运行。环境不同并且不包含正确的 Java 版本。检查 java 版本为 root,它将指向 Java 6 JRE。

关于java - Cassandra 2.0 及更高版本需要 Java 7u25 或更高版本,但我使用的是 8u60,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34618006/

相关文章:

java - Android Studio - 格式化我的笔记本后,谷歌地图 v2 无法工作

linux - bash 脚本中的空回显是什么意思?

exception - 获取异常 : 1 when running nodetool info?

java - Cassandra 和 ConsistencyLevel(冗余)的问题

java - 同步块(synchronized block)如何工作?

Java空点异常错误

c++ - 数组值自动更改为 0

java - Flink 和 Cassandra 连接问题

Java BigInteger 具有非常大的二进制数

javascript - 如何从 HTML 和 Javascript 页面执行 Linux 命令?