Проверка искры: содержание, восстановление и идемпотентность - PullRequest
1 голос
/ 29 мая 2019

Я пытаюсь понять содержимое контрольной точки и соответствующее восстановление; понимание процесса контрольно-пропускного пункта, очевидно, является естественным способом достижения этой цели, и поэтому я перебрал следующий список:

Я все еще пытаюсь понять, что происходит и сидит на диске в конце контрольной точки.

Мое понимание контрольной точки искры:

Если у вас действительно длинные группы доступности баз данных и ваш искровой кластер выходит из строя, проверка контрольных точек помогает путем сохранения промежуточного состояния, например, в HDFS. Таким образом, DAG из 50 преобразований может быть уменьшен до 4-5 преобразований с помощью контрольной точки. Это нарушает DAG.

Проверка в потоковом режиме

Работа My Spark Streaming имеет микропакет 5 секунд. Как я понимаю, новое задание отправляется JobScheduler каждые 5 секунд, которое вызывает JobGenerator для создания RDD DAG для новая микробатка от DStreamGraph , в то время как получатель тем временем продолжает собирать данные для следующей новой микробатки для следующего цикла. Если я включу контрольную точку, как я понимаю, она будет периодически продолжать контрольную точку "текущего состояния".

Вопрос:

  1. Что это за «состояние»? Является ли это комбинацией базового СДР и состояния операторов / преобразований группы обеспечения доступности баз данных только для данной микропартии ? Итак, у меня есть следующее:

    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 ? Будет ли он просто хранить текущее состояние операторов DAG для ubatch 2 ?

    а. Если да, то при восстановлении на T = 100 последняя доступная контрольная точка на T = 12 . Что происходит с ubatch 3 в T = 15 , который уже был успешно обработан. Приложение повторно обрабатывает ubatch 3 и обрабатывает идемпотентность здесь? Если да, идем ли мы к источнику потоковой передачи, например Кафка и перемотка смещения, чтобы иметь возможность воспроизвести содержимое, начиная с ubatch 3 ?

    б. Если нет, то что именно входит в каталог контрольных точек при T = 12?

...