Можно ли использовать znodes в качестве местоположения контрольной точки для структурированной потоковой передачи? - PullRequest
0 голосов
/ 02 мая 2019

В настоящее время я исследую и пытаюсь реализовать правильную контрольную точку для readStream с искровой структурой потоковой передачи, чтобы потребители Kafka, которые были недавно восстановлены после сбоя, возобновили свое последнее подтвержденное сообщение.

Использование «последнего» создает риск потери данных, тогда как «самое раннее» вызывает много неэффективной повторной обработки неструктурированных данных.

Потоковый конвейер в настоящее время работает в среде, состоящей из следующих компонентов в Microsoft Azure:

  • 1008 * Zookeeper *
  • Apache Kafka
  • Pyspark (2.2.1)

В настоящее время нет возможности настроить систему HDFS.

Я знаю, что есть возможность использовать znodes в качестве надежного местоположения контрольной точки смещения с Dstream, но есть ли способ использовать контрольную точку znode в readStream?

В идеале

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.

Если это невозможно, любые рекомендации будут приветствоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...