是否可以将znodes用作结构化流的检查点位置?

时间:2019-05-02 10:05:06

标签: pyspark apache-zookeeper spark-structured-streaming

我目前正在研究并尝试为Spark结构化的流readStream实施适当的检查点,以使最近因故障而恢复的Kafka使用者从其上次提交的消息中恢复。

使用“最新”会带来数据丢失的风险,而“最早”会导致很多非结构化数据的低效率重新处理。

流传输管道当前正在Microsoft Azure中由以下内容组成的环境中运行:

  • 动物园管理员
  • Apache Kafka
  • Pyspark(2.2.1)

当前没有设置HDFS系统的选项。

我知道有一个选项可以将znodes用作Dstream的可靠偏移检查点位置,但是有没有办法在readStream中使用znode检查点呢?

理想情况下

checkpoint_location = '[ideally a znode path/object]'
message = spark.readStream 
    .format("kafka") 
    .option("kafka.bootstrap.servers", consumer_bootstrap_servers)
    .option("subscribe", consumer_topic)
    .option("startingOffsets", consumer_startingOffsets)
    .option("group.id", consumer_group_id)
    .option("checkpointLocation", checkpoint_location)
    .option("failOnDataLoss", "false")
    .load()

我已经参考了诸如https://blog.cloudera.com/blog/2017/06/offset-management-for-apache-kafka-with-apache-spark-streaming/之类的指南,但是,我现在试图避免使用Dstream。

如果这不可能,那么任何建议都将受到欢迎。

0 个答案:

没有答案