web-dev-qa-db-ja.com

OSのパッチアップ後に開始できませんCassandra

OSにパッチを適用した後でCassandraを起動しようとすると、次のエラーが表示されます。

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;

他の変更なしで、今このエラーに遭遇している理由を誰もが知っていますか?

14
chris

これは、2日前にリリースされた8u161へのJDKのアップグレードに関連しているようです。

Cassandra Jira でチケットが開かれました

私が見つけることができる公開された回避策はありません。以前のバージョンのJDKに戻るか、Cassandra 3.11.2が問題を修正するまで待つ必要があります。

編集:これはリリースされた3.11.2で解決されたため、このバージョンにアップグレードして問題を解決できることを指摘しておく価値があります。

31
iandotkelly

ソースをダウンロードして、変更したメソッドを追加し、変更したクラスをコンパイルしてApache-cassandra.jarに追加できます。次のことができます。

  1. ダウンロード org.tar 置き換えられる唯一のクラスを含む。
  2. tar -xvf org.tarを使用してファイルを展開すると、orgディレクトリが取得されます。
  3. Apache-cassandra jarファイルをコピーします。例えばcp /usr/share/cassandra/Apache-cassandra-3.11.1.jar .
  4. 更新する前に、jarのバックアップを作成します。 cp Apache-cassandra-3.11.1.jar Apache-cassandra-3.11.1.jar_backup
  5. 現在のディレクトリには、次のファイルが含まれています:Apache-cassandra-3.11.1.jar Apache-cassandra-3.11.1.jar_backup org org.tar
  6. 次のコマンドを実行して、jarを更新します。

    jar uf Apache-cassandra-3.11.1.jar org

  7. ファイルをインストール場所に置き換えます。

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

  8. 再起動cassandraサービス

3
James Jithin

Cask数式を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

提案されたURLとして行6のURLを変更する " http://127.0.0.1:3333/jdk-8u152-macosx-x64.dmg "、

brew cask再インストールJava8

動作するはずです。

0
shooding