Подтвердить что ты не робот

Не удается запустить Cassandra db, используя bin/cassandra

У меня Ubuntu 12.04 с cassandra 1.1.3 (установка tarball). Когда я пытаюсь запустить cassandra, я получаю следующее:

[email protected]:~/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
[email protected]:~/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.

Итак, в чем проблема?

4b9b3361

Ответ 1

Проблема может быть вызвана использованием OpenJDK, как описано в отчете об ошибке Cassandra, но см. комментарии здесь для появления этой проблемы в Sun/Oracle и других JVM:

Если вы не можете установить Oracle JVM, попробуйте изменить размер размера стека в конфигурации conf/cassandra-env.sh script. Посмотрите на следующий раздел около строки 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"

Я использовал 280k успешно при тестировании установок на серверах Ubuntu в Rackspace и Amazon.

Основываясь на отчетах в комментариях ниже, я хотел бы предложить увеличить размер стека с шагом 20 тыс., начиная с -Xss200k, пока Cassandra не начнет правильно. Обратите внимание, что также можно удалить эту опцию и использовать размер стека по умолчанию для потока, но имейте в виду, какое влияние это будет иметь на потребление памяти.

Ответ 2

Это, скорее всего, связано с попыткой запустить под OpenJDK 1.6, что приводит к сбою сегментации в Ubuntu/Debian. Сбой seg скрыт из-за того, как оболочка script выполняет этот процесс. Вы можете проверить эту проблему, изменив $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.

Ответ 3

У меня было то же самое. Мне мешали шаги.

Удалить кассандру $ apt-get remove cassandra

Обновить apt repos $ sudo add-apt-repository ppa:webupd8team/java

Переустановите java $ sudo apt-get install oracle-java8-set-default

Установите cassandra снова $ apt-get install cassandra

Я использовал информацию из страница

Ответ 4

Попробуйте использовать команду ./cassandra -f start, если вы уверены, что правильно настроили env-переменные