问题可能是由于使用OpenJDK引起的,如Cassandra错误报告中所述 但 ,请参阅此处有关在Sun / Oracle和其他JVM上发生此问题的注释:
如果无法安装Oracle JVM,请尝试更改 的 堆栈大小 强> 在里面 conf/cassandra-env.sh 配置脚本。在第185行左右查找以下部分,然后更改 -Xss180k 更高的价值。
conf/cassandra-env.sh
-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"
在Rackspace和Amazon的Ubuntu服务器上测试安装时,我成功使用了280k。
根据以下评论中的报告,我建议以20k为增量增加堆栈大小,从 -Xss200k ,直到Cassandra正常开始。请注意,也可以删除此选项并使用每个线程的默认堆栈大小,但请注意这将对内存消耗产生的影响。
-Xss200k
这很可能是因为尝试在OpenJDK 1.6下运行导致Ubuntu / Debian下的分段错误。由于shell脚本执行进程的方式,因此隐藏了seg错误。您可以通过修改$ CASSANDRA_HOME / bin / cassandra来测试此问题,如下所示:
改变这一行:
exec $NUMACTL "$JAVA" $JVM_OPTS $cassandra_parms -cp "$CLASSPATH" $props "$class"
对此:
echo $NUMACTL "$JAVA" $JVM_OPTS $cassandra_parms -cp "$CLASSPATH" $props "$class"
然后跑 bin/cassandra -f 并复制生成的java命令。直接运行它以查看它是否产生分段错误。如果这是您的问题,则需要切换到Sun或IBM JDK,或者您可以升级到OpenJDK 1.7。
bin/cassandra -f
我有同样的。流动的步骤帮助了我。
删除cassandra $ apt-get remove cassandra
$ apt-get remove cassandra
更新apt repos $ sudo add-apt-repository ppa:webupd8team/java
$ sudo add-apt-repository ppa:webupd8team/java
重新安装java $ sudo apt-get install oracle-java8-set-default
$ sudo apt-get install oracle-java8-set-default
再次安装cassandra $ apt-get install cassandra
$ apt-get install cassandra
我正在使用那些信息 页
尝试使用命令 - 的 ./cassandra -f start 强> 如果您确定已正确设置了env变量