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

时间:2016-01-05 17:43:02

标签: java linux cassandra centos

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

在init脚本中,我在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.

任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

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