无法使用KafkaUtils创建Java输入dstream:Spark 1.6.0

时间:2017-10-05 13:50:00

标签: java apache-kafka spark-streaming

我正在使用Spark 1.6.0和使用Kafka的工件spark-streaming_2.11 API来使用字符串消息。

根据文档,我试图使用Kafka utils创建直接流,但我收到以下编译器错误:

  

KafkaUtils类型中的方法createDirectStream(JavaStreamingContext,Class,Class,Class,Class,Map,Set)不适用于参数(JavaStreamingContext,Class,Class,Class,Class,Map,Set)

以下是我编写的代码段:

conf = new SparkConf().setAppName("Test Streaming App").setMaster("local[*]");
sc = new JavaSparkContext(conf);
ssc = new JavaStreamingContext(sc, new Duration(2000));
Map<String, String> kafkaParams = new HashMap<String, String>();
kafkaParams.put("metadata.broker.list", "localhost:9092");
Set<String> topics = Collections.singleton("test");
JavaPairInputDStream<String, String> dstream = KafkaUtils.createDirectStream(ssc, String.class, String.class, StringDecoder.class, StringDecoder.class,kafkaParams,topics);
ssc.start();
ssc.awaitTermination();

这是神器和我正在使用的Spark版本的一些问题吗?请详细说明一下。

1 个答案:

答案 0 :(得分:0)

问题在于StringDecoder类。该类似乎无法访问。

根据以下帖子

Can't acess kafka.serializer.StringDecoder

我按照接受的答案按照提到的程序解决了问题。