4 votes

Il n'est pas possible de démarrer une application en tant que service, mais l'exécuter en tant que processus autonome fonctionne simplement.

Pour un service, bien qu'un fichier pid existe, lorsque l'on tente 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 des dossiers 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 bien que j'aie vérifié que ce fichier existe. (De plus, pid est alloué). Alors pourquoi dit-il qu'il ne peut pas accéder au fichier pid ?

Et courir cassandra en tant que processus autonome fonctionne parfaitement, mais pas seulement en utilisant la fonction 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 ? sudo service cassandra start ?

5voto

Danatela Points 13190

Vous devez supprimer /var/run/cassandra car il n'a pas les bonnes permissions :

sudo rm -rf /var/run/cassandra

Vous pouvez également corriger les autorisations manuellement :

sudo chmod 750 /var/run/cassandra

Démarrez ensuite Cassandra en tant que service :

sudo service cassandra start

Quelques explications

Instructions sur les autorisations de fichiers aquí .

  • Il n'est pas dangereux de supprimer ce dossier car il se recrée avec les bonnes autorisations et le bon contenu. Mais ne le supprimez pas une fois qu'il fonctionne correctement. Cela pourrait entraîner une perte de données ou un comportement incorrect.

  • chmod 750 décrypte avec les permissions rwxr-x---. Cela permet à l'utilisateur de lire-écrire-exécuter, au groupe de lire-exécuter et aux autres de ne rien avoir. Pour Cassandra, il suffit de définir les permissions de la manière suivante.

2voto

Joepreludian Points 121

Cette solution peut être obtenue de la manière suivante :

$ sudo vim /etc/init.d/cassandra;

Trouvez la ligne suivante :

CMD_PATT="cassandra.+CassandraDaemon"

Remplacer par :

CMD_PATT="cassandra"

Sauvegarder, arrêter et recommencer. Le service obtiendra un état correct ; 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 (vérifier l'ÉTAPE 3)

0voto

Fred Points 1

Ma solution pour la migration de Cassandra 2.0.9 vers 2.1.4

Après la mise à jour avec

sudo apt-get install dsc21

Aller au fichier journal :

tail -f /var/log/cassandra/system.log

Vous pouvez voir que vous devez modifier le fichier de configuration de cassandra.

  1. Stop Cassandra

    sudo /etc/init.d/cassandra stop
  2. Aller dans le fichier de configuration de Cassandra

    sudo vi /etc/cassandra/cassandra.yaml
  3. 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
  4. Démarrer Cassandra

    sudo /etc/init.d/cassandra start
  5. Vérifier

    nodetool status

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X