阅读最新的spark kafka流媒体

时间:2014-10-01 07:30:22

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

我希望只使用kafka读取spark spark中的最新消息,但它也会获取过去的数据

如何在KafkaUtil中为spark设置auto.offset.reset

JavaPairReceiverInputDStream<String, String> messages =
            KafkaUtils.createStream(jssc, args[0], args[1], topicMap);

如何将conf设置为仅提取当前消息。请举一些例子。

先谢谢,还有另一个thread

但还不够,请帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:7)

您需要在KafkaUtils对象中使用此方法:

 def createStream[K, V, U <: Decoder[_], T <: Decoder[_]](
      jssc: JavaStreamingContext,
      keyTypeClass: Class[K],
      valueTypeClass: Class[V],
      keyDecoderClass: Class[U],
      valueDecoderClass: Class[T],
      kafkaParams: JMap[String, String],
      topics: JMap[String, JInt],
      storageLevel: StorageLevel
    )

根据Spark版本,您不能使用java。有bug

如果您使用的是Spark 1.1.0,则需要在 kafkaParams 参数中添加此属性:

  

&#34; auto.offset.reset&#34;,&#34;最大&#34;

另一种解决方法是随机生成 groupId 前缀,但这很糟糕。