我已经看到关于此的其他几个问题,这表明这是一个依赖/版本问题,例如 kafka.cluster.BrokerEndPoint cannot be cast to kafka.cluster.Broker
但是,我无法说出我的依赖项有什么问题。我使用的是Spark 2.1.0和
org.apache.spark.spark-core_2.11
org.apache.spark.spark-sql_2.11
org.apache.spark.spark-streaming-kafka-0-8_2.11
org.apache.spark.spark-streaming_2.11
作为我的工作罐中的依赖项我试图通过spark-submit
运行。我知道Kafka服务器的代理版本是0.8,这些依赖都设置为2.1.0。所有这些依赖项似乎都兼容,所以我不确定我的错误在哪里。
修改:我发现如果我将spark-streaming-kafka-0-8_2.11
更改为提供的依赖项并在调用spark-submit
时将其传递,则可以正常工作。我不知道为什么会这样,为什么我不能把它与其他所有东西捆绑在主罐子里。
答案 0 :(得分:0)
检查以确保您在运行时类路径中的任何位置都没有可能被加载的Kafka jar。