Cassandra - ОШИБКА: нет прав на запись для каталога ./../data/data

Я только что установил Datastax Enterprise. Я пытаюсь запустить команды. Я использую OS X (Sierra).

cd dse/bin
./cassandra

После некоторого процесса я получаю такие ошибки:

ERROR 02:29:11 Doesn't have write permissions for ./../data/data directory
ERROR 02:29:11 Insufficient permissions on directory ./../data/data

Я видел одну из похожих проблем и нашел свое предложение, которое запускает следующие команды:

sudo chown -R cassandra:cassandra /var/lib/cassandra/data
sudo chown -R cassandra:cassandra /var/lib/cassandra/commitlog

Даже сейчас я получаю другую проблему:

chown: cassandra: illegal group name

person Sun    schedule 26.01.2018    source источник


Ответы (2)


Как вы установили DSE? /var/lib/cassandra/data — это типичный путь от установки из пакетов под Linux, а ./../data/data/ — установка из архива (местоположения по умолчанию и т. д. см. https://docs.datastax.com/en/dse/5.1/dse-dev/datastax_enterprise/install/dseTarLoc.html).

Ваш каталог данных настроен внутри dse — вам нужно проверить разрешения там или настроить каталог данных в cassandra.yaml.

person Mandraenke    schedule 26.01.2018

По крайней мере, в некоторых случаях CASSANDRA_HOME устанавливается в

bin/cassandra.in.sh

Я не уверен, как Cassandra попадает туда без установки CASSANDRA_HOME, но нет сомнений, что она может туда попасть, потому что первое, что делает cassandra.in.sh, это проверяет, не инициализирован ли CASSANDRA_HOME здесь:

if [ "x$CASSANDRA_HOME" = "x" ]; then
#    CASSANDRA_HOME="`dirname "$0"`/.."
     CASSANDRA_HOME=/usr/local/c4/cassandra
fi

Потому что cassandra.in.sh живет в bin/cassandra.in.sh эта штука

"dirname "$0"/.."

заставляет данные/данные (что важно, как вы узнаете) учитываться в

/usr/local/c4/cassandra/bin/../данные/данные

Чтобы узнать, куда вы поместили bin/cassandra.in.sh, выполните

судо обновленоb

найти данные / данные

В моем случае я поставил это так:

server@think:$ найти данные/данные

/usr/местные/c4/кассандра/данные/данные

Вы можете видеть выше в поле кода, мое решение на данный момент состоит в том, чтобы жестко закодировать местоположение. Я уверен, что со временем разберусь, как все это работает. Теперь для второй части вашего вопроса вам нужно узнать, как Ubuntu использует имена групп, чтобы заставить эту часть работать. Вы были на правильном пути с:

sudo chown -R cassandra:cassandra /var/lib/cassandra/data

sudo chown -R кассандра: кассандра /var/lib/cassandra/commitlog

Но вы еще не создали группу, я успешно воспользовался этой инструкцией:

https://www.admintome.com/blog/install-cassandra-on-ubuntu-18-04/

Наконец, я вижу из своих заметок, что потратил довольно много времени на то, чтобы это работало правильно, даже если я еще не понимаю каждую часть Кассандры. Если вы хотите сами покопаться в тайнах CASSANDRA_HOME, начните с этого:

sudo grep -R "CASSANDRA_HOME" /usr/

person Richard Bradley Smith    schedule 06.04.2019