1

私はkafkaプロデューサを作成し、Apache Sparkで実行する小さなアプリケーションをscalaに持っています。 私は、コマンドを実行したとき、私はWARNこれを取得していますApache Spark:Kafkaプロデューサの実行中にInstanceAlreadyExistsExceptionを取得する

spark-submit --master local[2] --deploy-mode client <into the jar file> <app Name> <kafka broker> <kafka in queue> <kafka out queue> <interval> 

:登録エラーAPPINFOのMBean にjavax.management.InstanceAlreadyExistsException:kafka.producer: はAppInfoParser WARNタイプ=アプリ-情報、IDを=

ヴァル・プロデューサー=新しいKafkaProducerObject、

誰もがこのためのソリューションを持っていないオブジェクト:ScalaはKafkaProducerを作成するときに、私はこの例外を取得していますので、コードは関係ありませんか? ありがとうございました!

答えて

2

カフカプロデューサを作成すると、client.idを一意の識別子として使用してMBeanを登録しようとします。あなたは、同じJVM上で同じclient.idプロパティと一度に複数のプロデューサーを初期化しようとしている

  1. を使用すると、InstanceAlreadyExistsExceptionの警告を得ている理由の二つの可能性があります。

  2. 他のプロデューサを初期化する前に、既存のプロデューサでclose()を呼び出していません。 close()を呼び出すと、MBeanの登録が解除されます。

プロデューサを初期化するときにclient.idプロパティを空白のままにすると、一意のものが作成されます。プロデューサ固有のclient.id値を与えたり、自動生成させることでこの問題を解決できます。

カフカの場合は、MBeansを統計のトラッキングに使用できます。 MBeans created by Kafka displayed in JMC.exe

関連する問題