web-dev-qa-db-ja.com

bin / cassandraを使用してCassandra dbを開始できません

私はUbuntu12.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$ 

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.

それで、問題は何ですか?

23
Ababneh A

この問題は、Cassandraバグレポートbutで説明されているように、OpenJDKを使用することで発生する可能性があります。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を正常に使用しました。

以下のコメントのレポートに基づいて、スタックサイズを-Xss200kから始めて、Cassandraが正しく開始されるまで、20k刻みで増やすことをお勧めします。削除することも可能です。このオプションを使用し、スレッドごとのデフォルトのスタックサイズを使用しますが、これがメモリ消費に与える影響に注意してください。

28
grkvlt

これは、OpenJDK 1.6で実行しようとしたことが原因である可能性が高く、Ubuntu/Debianでセグメンテーション違反が発生します。シェルスクリプトがプロセスを実行する方法のため、セグメンテーション違反は非表示になっています。 $ 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、または代わりにOpenJDK1.7にアップグレードできます。

4
rs_atl

私も同じでした。流れるようなステップが私を助けました。

削除cassandra $ 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

私はそこからの情報を使用していました ページ

0
Ihor