私はしばらく実行していた古いトポロジを持っています。しかし、最近、私はこのトポロジーを更新して、それを殺す必要があります。私は嵐のために更新されたトポロジを提出しようとすると、このような例外が発生しました:ローカルクラスは暴風で互換性がありません
java.io.InvalidClassException: com.weibo.security.storm.bolt.IpCountBolt; local class incompatible: stream classdesc serialVersionUID = -5336119852024782309, local class serialVersionUID = -572783398581060861
だから、私はstorm.log.dir
、storm.local.dir
、ノード全体/storm
中を含め、嵐のプロセスを殺したし、嵐に関連するすべてのものを削除しようとしました飼育係と/tmp
ディレクトリ全体が含まれます。しかし、私が嵐を開始し、トポロジーを再び提出すると、この例外はまだそこにあります。
トポロジでクラス名を変更してそれらをバイパスすることができましたが、これは適切な解決策ではありません。
私はそれがInvalidClassExceptionの原因となることを理解しています。しかし、私は古いトポロジに関連するすべてのデータを削除したと思います。なぜまだそこにいるのですか?古いトポロジのキャッシュを隠す可能性のある場所はどこにもありますか?
クラスのソースは、シリアルバージョンの値を定義することもできます(ランダムなものを選択します)そうでない場合)と(2)あなたはどこかでクラスの新しいバージョンをピックアップしている可能性がありますか? –
(1)いいえ、デフォルトでランダム値を使用しました。 (2)クラスの新しいバージョンを "ピックアップ"することはどういう意味ですか? –