Apache Spark:运行Kafka生成器时获取InstanceAlreadyExistsException

CMP*_*MPE 3 scala exception apache-kafka apache-spark 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>
Run Code Online (Sandbox Code Playgroud)

我得到这个WARN:WARN AppInfoParser:注册AppInfo时出错mbean javax.management.InstanceAlreadyExistsException:kafka.producer:type = app-info,id =

代码不相关,因为我在scala创建KafkaProducer时遇到此异常:val producer = new KafkaProducerObject,Object

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

Ste*_*eve 9

创建Kafka Producer时,它会尝试使用client.id作为其唯一标识符注册MBean.

您有两种可能性来获取InstanceAlreadyExistsException警告:

  1. 您尝试在同一JVM上使用相同的client.id属性一次初始化多个Producer.
  2. 在初始化另一个Producer之前,您没有在现有Producer上调用close().调用close()取消注册MBean.

如果在初始化生产者时将client.id属性留空,则将为您创建一个唯一的属性.为您的生产者提供唯一的client.id值或允许它们自动生成将解决此问题.

就Kafka而言,MBean可用于跟踪统计数据. Kafka创建的MBean显示在JMC.exe中