У меня есть потоковое приложение, которое считывает данные от Aws Kinesis.Spark Streaming with Kinesis - Как заставить контрольно-пропускной пункт?
По умолчанию при создании ресиверов потока вы можете выбрать, с какого интервала сделать контрольную точку, что делается на DynamoDB.
В какой-то момент я хотел бы остановить свое приложение (sparkStreamingContext.stop()
), но до этого я хотел бы заставить контрольно-пропускной пункт.
Возможно ли это?
Я знаю, что если контрольная точка будет в файловой системе, я должен сделать sparkStreamingContext.checkpoint(directoryName)
, но контрольная точка для кинезиса находится на DynamoDB, так как я могу это сделать?
Спасибо!
Итак, какова функция sparkStreamingContext.checkpoint (directoryName) для? И как я могу гарантировать, что, когда я останавливаю приложение, проверяются только обработанные данные, а не все полученные данные (например, если моя микро-партия опаздывает и требуется больше, чем интервал микро-пакетной обработки) ?) – nicola
@nicola Он должен сказать Спарку, в какой каталог он должен проходить контрольно-пропускной пункт. Лучшее, что вы можете сделать, это установить изящное завершение через 'sparkConf.set (" spark.streaming.stopGracefullyOnShutdown "," true ")' –