這個問題多半是由於運行了多個Cassandra實例造成的錯誤,看cassandra的啟動腳本中可發現這樣的語句:
# see CASSANDRA-7254
"$JAVA" -cp $CLASSPATH $JVM_OPTS 2>&1 | grep -q 'Error: Exception thrown by the agent : java.lang.NullPointerException'
if [ $? -ne "1" ]; then
echo Unable to bind JMX, is Cassandra already running?
exit 1;
fi
在conf/cassandra-env.sh文件中的JVM_OPTS設置了JMX的端口為7199,所以這個錯誤發生在設置java環境的時候,
使用如下方法停止cassandra,然后重啟就可解決。
# user=`whoami`
# pgrep -u $user -f cassandra | xargs kill -9
當然也可能是其他程序占用了7199端口, 可用netstat -anlt。