无法使用bin/cassandra启动Cassandra db

Aba*_*h A 22 cassandra

我有Ussntu 12.04和cassandra 1.1.3(tarball安装),当我尝试启动cassandra时,我得到以下内容:

user@ubuntu:~/apache-cassandra-1.1.3/bin$ sudo ./cassandra -f
xss =  -ea -javaagent:./../lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms4G -Xmx4G -Xmn800M -XX:    +HeapDumpOnOutOfMemoryError -Xss128k
user@ubuntu:~/apache-cassandra-1.1.3/bin$ 
Run Code Online (Sandbox Code Playgroud)

根据cassandra文档,输出看起来不像预期的那样:

The service should start in the foreground and log gratuitously to 
standard-out. Assuming you don't see messages with scary words like  
"error", or "fatal", or anything that looks like a Java stack trace,  
then chances are you've succeeded.
Run Code Online (Sandbox Code Playgroud)

那么,问题是什么?

grk*_*vlt 27

问题可能是由于使用OpenJDK引起的,如Cassandra错误报告中所述,但是,请参阅此处有关Sun/Oracle和其他JVM上此问题的注释:

如果无法安装Oracle JVM,请尝试在配置脚本中更改堆栈大小conf/cassandra-env.sh.在第185行左右查找以下部分,并将其更改-Xss180k为更高的值.

if [ "`uname`" = "Linux" ] ; then
  # reduce the per-thread stack size to minimize the impact of Thrift
  # thread-per-client.  (Best practice is for client connections to
  # be pooled anyway.) Only do so on Linux where it is known to be
  # supported.
  # u34 and greater need 180k
  JVM_OPTS="$JVM_OPTS -Xss180k"
fi
echo "xss = $JVM_OPTS"
Run Code Online (Sandbox Code Playgroud)

在Rackspace和Amazon的Ubuntu服务器上测试安装时,我成功使用了280k.

根据下面评论中的报告,我建议以20k为增量增加堆栈大小,从开始-Xss200k,直到Cassandra正常启动.请注意,也可以删除此选项并使用每个线程的默认堆栈大小,但请注意这将对内存消耗产生的影响.

  • 使用256k堆栈大小修复了Red Hat 6上的这个问题. (3认同)
  • 谢谢你的帮助.我把它设置为280k和300k,但仍然是同样的错误.我应该尝试多高的价值?我正在使用Oracle JDK (2认同)