Pour un service bien qu'un fichier pid existe, mais quand même en essayant de démarrer le service, il échoue en disant:
$ Sudo service cassandra start
* could not access pidfile for Cassandra
J'ai vérifié les autorisations de dossier sous /var/run
(dont le propriétaire est root) et le sous-dossier cassandra appartient à l'utilisateur cassandra, mais le service ne peut toujours pas accéder au fichier pid même si j'ai vérifié. ce fichier pid existe. (Pid est également alloué). Alors pourquoi dit-il qu'il ne peut pas accéder à pidfile?
Et exécuter cassandra
en tant que processus autonome fonctionne, mais pas simplement en utilisant service cassandra start
$ Sudo ls -l /var/run/cassandra
total 4
-rw-r--r-- 1 cassandra cassandra 4 Mar 18 07:33 cassandra.pid
$ Sudo su
# ls -ld /var/run/cassandra
dr--r----- 2 cassandra cassandra 60 Mar 18 07:38 /var/run/cassandra
Comment faire pour que cela fonctionne avec Sudo service cassandra start
?
Vous devez supprimer le dossier /var/run/cassandra
, ce qui entraîne des autorisations erronées:
Sudo rm -rf /var/run/cassandra
Ou vous pouvez corriger les autorisations manuellement:
Sudo chmod 750 /var/run/cassandra
Puis lancez Cassandra en tant que service:
Sudo service cassandra start
Vous trouverez des instructions sur les autorisations de fichiers ici .
Il est prudent de supprimer ce dossier car il recrée avec les autorisations et le contenu appropriés. Mais ne le supprimez pas une fois que cela fonctionne correctement. Cela pourrait entraîner une perte de données ou un comportement incorrect.
chmod 750
décrypte en tant qu'autorisations rwxr-x ---. Il permet une lecture-écriture-exécution pour l'utilisateur, une lecture-exécution pour le groupe et rien pour les autres. Pour Cassandra, il suffit de définir des autorisations de cette manière.
Cette solution peut être réalisée de la manière suivante:
$ Sudo vim /etc/init.d/cassandra;
Trouvez la ligne suivante:
CMD_PATT="cassandra.+CassandraDaemon"
Remplacer par:
CMD_PATT="cassandra"
Sauvegardez et arrêtez et recommencez. Le service obtiendra le statut correctement; Testé sur cassandra 2.3
Source ici: https://www.digitalocean.com/community/tutorials/how-to-install-cassandra-and-run-a-single-node-cluster-on-ubuntu-14-04 = (voir l'ETAPE 3)
Ma solution pour la migration de Cassandra 2.0.9 à 2.1.4
Après la mise à niveau avec
Sudo apt-get install dsc21
Aller au fichier journal:
tail -f /var/log/cassandra/system.log
Vous pouvez voir que vous devez modifier votre fichier de configuration cassandra.
Arrêtez Cassandra
Sudo /etc/init.d/cassandra stop
Allez dans le fichier de configuration Cassandra
Sudo vi /etc/cassandra/cassandra.yaml
Commentez ces 5 lignes ou supprimez-les:
multithreaded_compaction: false
preheat_kernel_page_cache: false
memtable_flush_queue_size: 4
in_memory_compaction_limit_in_mb: 64
compaction_preheat_key_cache: true
Démarrer Cassandra
Sudo /etc/init.d/cassandra start
Vérifier
nodetool status