集成Spark Streaming和Kafka,但会出现错误的符号引用错误

时间:2015-01-23 13:21:29

标签: scala apache-spark apache-kafka spark-streaming

我正在尝试整合Spark流媒体和Kafka。我在intellij idea IDE中编写了我的源代码;编译器编译代码时没有任何错误,但是当我尝试构建jar文件时,会生成一条错误消息,显示:

  

错误:scalac:错误的符号引用。 KafkaUtils.class中的签名   是指无法获得的包装中的术语kafka。有可能   从当前的类路径或版本中完全丢失   类路径可能与使用时的版本不兼容   编译KafkaUtils.class。

我在google上做过研究,很多人说这是因为Scala版本和spark_streaming_kafka jar文件之间的版本不同。但我检查了版本,它们是一样的。

有人知道为什么会发生此错误吗?

以下是更多详情:

scala版本:2.10 spark kafka jar版本:spark_streaming_kafka_2.10-1.20.jar,spark_streaming_2.10-1.20.jar

我的源代码:

object Kafka { 

  def main(args: Array[String]) { 
    val master = "local[*]" 
    val zkQuorum = "localhost:2181" 
    val group = "" 
    val topics = "test" 
    val numThreads = 1 

    val conf = new SparkConf().setAppName("Kafka") 
    val ssc = new StreamingContext(conf, Seconds(2)) 

    val topicpMap = topics.split(",").map((_, numThreads.toInt)).toMap 

    val lines = KafkaUtils.createStream(ssc, zkQuorum, group, topicpMap).map(_._2) 

    val words = lines.flatMap(_.split(" ")) 

    words.print() 

    ssc.start() 
    ssc.awaitTermination() 
  } 
}

0 个答案:

没有答案