0

代碼(通過火花流運行)設立消費,創建後的道具對象卡夫卡消費者無法從卡夫卡的主題訂閱

val consumer = new KafkaConsumer[String, String](props) 
consumer.subscribe(util.Arrays.asList(topic)) 

代碼擁有自營如下

package main.scala 
import org.apache.spark.SparkContext 
import org.apache.spark.SparkConf 
import org.apache.spark.streaming.StreamingContext 
import org.apache.spark.streaming.Seconds 
import org.apache.spark.streaming.kafka.KafkaUtils 
import org.apache.kafka.clients.consumer.KafkaConsumer 
import java.util 
import java.util.Properties 
import org.apache.kafka.clients.consumer.{ConsumerConfig, KafkaConsumer} 
import java.io.IOException 

我通過創建一個SBT組裝罐子

libraryDependencies += "org.apache.spark" %% "spark-core" % "1.6.0" % "provided" 
libraryDependencies += "org.apache.spark" %% "spark-streaming" % "1.6.0" % "provided" 
libraryDependencies += "org.apache.spark" %% "spark-streaming-kafka" % "1.6.0" libraryDependencies += "org.apache.kafka" % "kafka_2.10" % "0.10.0-kafka-2.1.1" 

u能請建議什麼,我在這裏缺少

錯誤消息 -

用戶類拋出異常:java.lang.NoSuchMethodError:org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/UTIL /收藏;)V

+0

很難說沒有看到Scaladoc,但爲什麼你不能只做'List(topic)'?是什麼讓你使用Java'List'? –

+0

你好Abhijit,謝謝你的回覆。就像我如何打印,我只需要看看數據是否來臨。做你可以在這裏使用的代碼片段 –

+0

你不回答與另一個問題的問題。 –

回答

-2

subscribe取輸入類型java.util.Collections而不是java.util.Arrays.asList

嘗試

consumer.subscribe(java.util.Arrays.asList("topic")) 

它應該工作...

+0

沒有hitesh,它沒有幫助。我仍然面臨這個問題。 –

+0

可以添加「org.apache.kafka」%「kafka-clients」%「0.10.0.0」dependency – hitesh

+0

'List'是一個'Collection'。繼承101。 –

0

我曾與星火2.2.0和卡夫卡0.10.0 問題是因爲在不同的spark2-卡夫卡默認版本同樣的問題提交(也spark2殼)

我發現決定here

1. Before spark2-submit you have to export kafka version 
$ export SPARK_KAFKA_VERSION=0.10 
$ spark2-submit ...