По крайней мере, в некоторых случаях 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