首页 文章

阅读最新的 spark kafka 流媒体

提问于
浏览
4

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

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

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

如何将 conf 设置为仅获取当前消息。请举个例子。

在此先感谢,还有另一个线

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

1 回答

  • 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。有一个窃听器

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

    “auto.offset.reset”,“最大”

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

相关问题