web-dev-qa-db-fra.com

Impossible de démarrer Cassandra après la mise à jour du système d'exploitation

Lorsque j'essaie de démarrer Cassandra après avoir corrigé mon système d'exploitation, le message d'erreur suivant s'affiche:

Exception (Java.lang.AbstractMethodError) encountered during startup: org.Apache.cassandra.utils.JMXServerUtils$Exporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Lsun/misc/ObjectInputFilter;)Ljava/rmi/Remote;

Java.lang.AbstractMethodError: org.Apache.cassandra.utils.JMXServerUtils$Exporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Lsun/misc/ObjectInputFilter;)Ljava/rmi/Remote;
        at javax.management.remote.rmi.RMIJRMPServerImpl.export(RMIJRMPServerImpl.Java:150)
        at javax.management.remote.rmi.RMIJRMPServerImpl.export(RMIJRMPServerImpl.Java:135)
        at javax.management.remote.rmi.RMIConnectorServer.start(RMIConnectorServer.Java:405)
        at org.Apache.cassandra.utils.JMXServerUtils.createJMXServer(JMXServerUtils.Java:104)
        at org.Apache.cassandra.service.CassandraDaemon.maybeInitJmx(CassandraDaemon.Java:143)
        at org.Apache.cassandra.service.CassandraDaemon.setup(CassandraDaemon.Java:188)
        at com.datastax.bdp.server.DseDaemon.setup(DseDaemon.Java:476)
        at org.Apache.cassandra.service.CassandraDaemon.activate(CassandraDaemon.Java:59
        at com.datastax.bdp.DseModule.main(DseModule.Java:93)
ERROR [main] 2018-01-17 13:18:03,330  CassandraDaemon.Java:705 - Exception encountered during startup
Java.lang.AbstractMethodError: org.Apache.cassandra.utils.JMXServerUtils$Exporter.exportObject(Ljava/rmi/Remote;ILjava/rmi/server/RMIClientSocketFactory;Ljava/rmi/server/RMIServerSocketFactory;Lsun/misc/ObjectInputFilter;)Ljava/rmi/Remote;

Est-ce que quelqu'un sait pourquoi, sans autre changement, je rencontre cette erreur maintenant?

15
chris

Cela semble être lié à une mise à niveau du JDK vers 8u161 qui a été publiée il y a 2 jours.

Un billet a été ouvert sur le Cassandra Jira

Je ne trouve aucune solution de contournement publiée. Vous devrez peut-être revenir à une version antérieure du JDK ou attendre Cassandra 3.11.2 qui corrige le problème.

Edit: Il est intéressant de noter que cela a maintenant été résolu dans la version 3.11.2, vous pouvez donc simplement passer à cette version pour résoudre le problème.

31
iandotkelly

Pour que Cassandra fonctionne, je devais installer JDK 8u152. Utiliser brew cask install Java8 ce n’était pas possible. J'ai essayé d'utiliser une ancienne version de la formule cassandra.rb mais cela vient de recevoir:

Error: Download failed on Cask 'Java8' with message: Download failed: http://download.Oracle.com/otn-pub/Java/jdk/8u152-b16/aa0333dd3019491ca4f6ddbe78cdb6d0/jdk-8u152-macosx-x64.dmg

Je devais y aller et me connecter pour pouvoir télécharger DMG: http://www.Oracle.com/technetwork/Java/javase/downloads/Java-archive-javase8-2177648.html

Protip: Pour pouvoir toujours installer Java8 avec homebrew, j'ai téléchargé moi-même le dmg et lancé un serveur dans le répertoire de téléchargement:

cd ~/Downloads
php -S 0.0.0.0:3333

Et changé l'URL de téléchargement (ligne 6) dans la formule en:

url "http://0.0.0.0:3333/jdk-8u152-macosx-x64.dmg",

Puis j'ai pu courir:

brew cask install Java8

Maintenant, Cassandra court à nouveau.

4
Erik Rothoff

Vous pouvez télécharger le source et ajouter la méthode modifiée, compiler et ajouter la classe modifiée à Apache-cassandra.jar. Vous pouvez faire ce qui suit:

  1. Télécharger org.tar contenant la seule classe à remplacer.
  2. Décompressez le fichier en utilisant tar -xvf org.tar et vous devriez obtenir le répertoire org
  3. Copiez le fichier jarre Apache-Cassandra. par exemple. cp /usr/share/cassandra/Apache-cassandra-3.11.1.jar .
  4. Faites une sauvegarde du fichier avant la mise à jour. cp Apache-cassandra-3.11.1.jar Apache-cassandra-3.11.1.jar_backup.
  5. Le répertoire actuel contient les fichiers suivants: Apache-cassandra-3.11.1.jar Apache-cassandra-3.11.1.jar_backup org org.tar
  6. Exécutez la commande suivante pour mettre à jour le fichier JAR:

    jar uf Apache-cassandra-3.11.1.jar org

  7. Remplacez le fichier à l'emplacement d'installation:

    mv Apache-cassandra-3.11.1.jar /usr/share/cassandra

  8. Redémarrer le service de cassandra

3
James Jithin

Rétablir la formule Cask à la version 2017.

wget https://github.com/caskroom/homebrew-versions/blob/a98da98a7e4d87e9b614b3aa25af9c6c21a753c6/Casks/Java8.rb -O /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/Casks/Java8.rb

changez l’URL de la ligne 6 comme suggéré url " http://127.0.0.1:3333/jdk-8u152-macosx-x64.dmg ",

bière brassée réinstaller Java8

devrait marcher.

0
shooding