scala - Apache Spark : Getting a InstanceAlreadyExistsException when running the Kafka producer

标签 scala exception apache-spark apache-kafka kafka-producer-api

我在 scala 中有一个小应用程序,它创建了 kafka 生产者并与 Apache Spark 一起运行。
当我运行命令时

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

我收到此警告:
警告 AppInfoParser:注册 AppInfo mbean 时出错
javax.management.InstanceAlreadyExistsException: kafka.producer:type=app-info,id=

该代码不相关,因为当 Scala 创建 KafkaProducer 时我收到此异常: val producer = new KafkaProducerObject,Object

有人对此有解决方案吗?
谢谢!

最佳答案

创建 Kafka Producer 时,它会尝试使用 client.id 作为其唯一标识符来注册 MBean。
您收到 InstanceAlreadyExistsException 的原因有两种可能。警告:

  • 您正在尝试使用同一 JVM 上的相同 client.id 属性一次初始化多个生产者。
  • 你不是在打电话 close()在初始化另一个 Producer 之前在现有 Producer 上。调用 close()取消注册 MBean。

  • 如果您在初始化生产者时将 client.id 属性留空,则会为您创建一个唯一的属性。为您的生产者提供唯一的 client.id 值或允许它们自动生成将解决此问题。
    对于卡夫卡,MBeans可用于跟踪统计。
    MBeans created by Kafka displayed in JMC.exe

    关于scala - Apache Spark : Getting a InstanceAlreadyExistsException when running the Kafka producer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38108963/

    相关文章:

    scala - 理解 Scala 中的隐式

    c++ - 跨越 COM 方法边界的 C++ 异常会发生什么情况?

    java - "Rethrow"到下一个 catch 子句

    apache-spark - 如何在 Spark Streaming 中构建查找图?

    scala - 通过扩展工厂特征,使用 Scala 伴随对象作为工厂。更好的解决方案?

    Scala Mockito Guice 和 Partial Mocking ....方法被调用两次

    java - Apache Spark Streaming 的集成测试失败

    apache-spark - Spark 与 Dask 的容错

    ScalaTest 和 SBT : Reporting progress of test suite?

    java - 验证失败时在 Spring RestController 中抛出什么类型的异常?