我在ubuntu 12.04上安装了Cassandra。
但是当我启动它时,会发生以下错误:
cassandra -f
xss = -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms1493M -Xmx1493M -Xmn373M -Xss160k
Segmentation fault (core dumped)
我做了以下事情来解决它,但没有任何反应:
在/etc/conf/cassandra-env.sh
我评论了以下几行:
JVM_OPTS="$JVM_OPTS -XX:+HeapDumpOnOutOfMemoryError"
# set jvm HeapDumpPath with CASSANDRA_HEAPDUMP_DIR
if [ "x$CASSANDRA_HEAPDUMP_DIR" != "x" ]; then
JVM_OPTS="$JVM_OPTS -XX:HeapDumpPath=$CASSANDRA_HEAPDUMP_DIR/cassandra-`date +%s`-pid$$.hprof"
fi
以root身份在shell上运行以下命令:
unset IBM_HEAPDUMP
unset IBM_HEAP_DUMP
我该如何解决?
答案 0 :(得分:5)
我遇到了同样的问题,发现了以下内容:
$ cassandra -f
xss = -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms826M -Xmx826M -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss180k
Segmentation fault (core dumped)
好的,怎么样:
$ sudo cassandra -f
xss = -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms826M -Xmx826M -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss180k
..这次没有分段错误,在这种情况下,'xss'部分可能只是一个模糊的调试消息?
$ ps -Af | grep cass
ubuntu 5687 959 0 15:42 pts/0 00:00:00 grep --color=auto cass
嗯,虽然没有开始流程。
对我有用的是:
$ sudo /etc/init.d/cassandra start
xss = -ea -javaagent:/usr/share/cassandra/lib/jamm-0.2.5.jar -XX:+UseThreadPriorities -XX:ThreadPriorityPolicy=42 -Xms826M -Xmx826M -Xmn100M -XX:+HeapDumpOnOutOfMemoryError -Xss180k
$ ps -Af | grep cass
root 5789 1 0 15:45 ? 00:00:00 jsvc.exec -user cassandra -home [blah blah blah] org.apache.cassandra.thrift.CassandraDaemon
106 5791 5789 13 15:45 ? 00:00:06 jsvc.exec -user cassandra -home [blah blah blah] org.apache.cassandra.thrift.CassandraDaemon
...虽然我意识到它不像cassandra -f
那样在前台运行它。
我最终放弃并重新开始,仅通过从DataStax社区AMI启动EC2实例来避免手动安装:https://aws.amazon.com/amis/datastax-auto-clustering-ami-2-2
但是......我刚刚在这里找到了真正的答案:https://stackoverflow.com/a/12941854/202168
答案 1 :(得分:1)
请参阅我的答案https://stackoverflow.com/a/14447535/92463,其中描述了增加堆栈段大小以在OpenJDK上启用Cassandra。