23

我有带有 cassandra 1.1.3(tarball 安装)的 Ubuntu 12.04,当我尝试启动 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$ 

根据 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.

那么,问题是什么?

4

4 回答 4

28

该问题可能是由使用 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"

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

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

于 2013-01-21T21:28:13.880 回答
4

这很可能是由于尝试在 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。

于 2012-10-17T19:25:45.027 回答
0

我有同样的。流畅的脚步帮助了我。

删除卡桑德拉 $ apt-get remove cassandra

更新 apt 存储库 $ sudo add-apt-repository ppa:webupd8team/java

重新安装java $ sudo apt-get install oracle-java8-set-default

再次安装 cassandra $ apt-get install cassandra

我正在使用该页面中的信息

于 2017-09-02T07:07:48.323 回答
-1

如果您确定已正确设置环境变量,请尝试使用命令 - ./cassandra -f start

于 2014-07-11T10:22:37.497 回答