2015-11-20 22 views
0

我在eclipse中使用Maven項目。它不會編譯。如何在Java應用程序中使用scala class JavaDStreamKafkaWriter?

JavaRDDKafkaWriter<String> writer = JavaRDDKafkaWriterFactory.fromJavaRDD(inrdd); 
writer.writeToKafka(producerConf, new ProcessingFunc());  

JavaDStreamKafkaWriter類無法解析爲某個類型。我已經包含了maven的依賴。

<dependency> 
     <groupId>org.cloudera.spark.streaming.kafka</groupId> 
     <artifactId>spark-kafka-writer</artifactId> 
     <version>0.1.1-SNAPSHOT</version> 
    </dependency> 

更多細節

回答

1

我確實做到了同樣的事情,先下載源來自https://github.com/cloudera/spark-kafka-writer然後在本地建立快照中看到的https://github.com/cloudera/spark-kafka-writer。這在我本地的Maven Repsoitory中創建了罐子。

對於DSTREAM代碼將是

final Properties properties = new Properties(); 
properties.put("metadata.broker.list","localhost:9092"); 
properties.put("serializer.class", "kafka.serializer.StringEncoder"); 

final JavaDStreamKafkaWriter<String> writer = 
     JavaDStreamKafkaWriterFactory.fromJavaDStream(JavaDStream); 

    writer.writeToKafka(properties, msg -> new KeyedMessage<>(TOPIC,msg)); 
+0

感謝。它編譯,現在我希望我能使它工作。 –

+0

我收到以下錯誤:java.io.NotSerializableException:DStream檢查點已啓用,但DStreams與其函數不可序列化。你知道爲什麼嗎? –

+0

你能粘貼你的代碼嗎?它可能是你需要聲明一些變量靜態或brodcasting變量,以便作家可以訪問它。你從Dstream發送給KafkaWriter的對象是什麼?您可能會在我的問題中得到您的疑問的答案:: http://stackoverflow.com/questions/33840210/spark-dstream-writing-to-kafka-not-sending-actual-uuids-to-kafkaconsumer-in-meso – Ravi

相關問題