Я пытаюсь понять содержимое контрольной точки и соответствующего восстановления; понимание процесса создания контрольных точек, очевидно, является естественным способом, поэтому я просмотрел следующий список:
Я все еще пытаюсь понять, что идет и остается на диске в конце контрольной точки.
Мое понимание Spark Checkpointing:
Если у вас очень длинные DAG и ваш искровой кластер дает сбой, контрольные точки помогают, сохраняя промежуточное состояние, например. к HDFS. Так, DAG из 50 трансформаций можно сократить до 4-5 трансформаций с помощью контрольных точек. Однако это нарушает DAG.
Контрольные точки в потоковом вещании
Мое задание Spark Streaming имеет микропакет из 5 секунд. Насколько я понимаю, новое задание отправляется JobScheduler каждые 5 секунд, которое вызывает JobGenerator для создания RDD DAG для нового микропакета из DStreamGraph, в то время как получатель тем временем продолжает собирать данные для следующего нового микропакета для следующего цикла . Если я включу чекпойнт, как я понимаю, он будет периодически держать чекпоинт в "текущем состоянии".
Вопрос:
Что это за «государство»? Является ли это комбинацией базового RDD и состояния операторов/преобразований группы обеспечения доступности баз данных только для текущего микропакета? Итак, у меня есть следующее:
ubatch 0 at T=0 ----> SUCCESS ubatch 1 at T=5 ----> SUCCESS ubatch 2 at T=10 ---> SUCCESS --------------------> Checkpointing kicks in now at T=12 ubatch 3 at T=15 ---> SUCCESS ubatch 4 at T=20 --------------------> Spark Cluster DOWN at T=23 => ubatch 4 FAILS!!! ... --------------------> Spark Cluster is restarted at *T=100*
Что конкретно отправляется и остается на диске в результате контрольной точки на T=12? Будет ли он просто хранить текущее состояние операторов группы обеспечения доступности баз данных для ubatch 2?
а. Если да, то во время восстановления при T=100 последняя доступная контрольная точка будет при T=12. Что происходит с упаковкой 3 в T=15, которая уже была успешно обработана. Обрабатывает ли приложение повторно ubatch 3 и обрабатывает ли здесь идемпотентность? Если да, идем ли мы к источнику потоковой передачи, например. Kafka и перемотать смещение, чтобы иметь возможность воспроизвести содержимое, начиная с ubatch 3?
б. Если нет, то что именно попадает в каталог контрольной точки при Т=12?