Apache Spark / AWS EMR и отслеживание обработанных файлов - PullRequest
0 голосов
/ 15 октября 2018

У меня есть папка AWS S3, в которой хранится большое количество JSON-файлов.Мне нужно ETL эти файлы с помощью AWS EMR поверх Spark и сохранить преобразование в AWS RDS.

Для этого я реализовал работу Spark в Scala, и все работает нормально.Я планирую выполнять это задание раз в неделю.

Время от времени внешняя логика может добавлять новые файлы в папку AWS S3, поэтому в следующий раз, когда запускается мое задание Spark, я хочу обрабатывать тольконовые (необработанные) файлы JSON.

Сейчас я не знаю, где хранить информацию об обработанных файлах JSON, чтобы задание Spark могло решать, какие файлы / папки обрабатывать.Не могли бы вы посоветовать мне, как лучше всего (и как) отслеживать эти изменения с помощью Spark / AWS?

1 Ответ

0 голосов
/ 15 октября 2018

Если это искровая потоковая работа, checkpointing - это то, что вы ищете, она обсуждается здесь .

  • Checkpoint хранит состояниеинформация (например, смещения и т. д.) в корзине hdfs / s3, поэтому при повторном запуске задания spark выбирает только необработанные файлы.Контрольная точка обеспечивает лучшую отказоустойчивость в случае сбоев, так как состояние обрабатывается автоматически самой искрой.

  • Опять контрольная точка работает только в потоковом режиме работы искры.

...