Всем привет, подскажите пожалуйста, какие бест пректизы с использованием спарка и эйрфлоу. Нужно ручками собирать джарник и подсовывать или есть какие-то более изящные решения?
я поделюсь нашим вариантом, может коллеги прокомментируют...
1) код Spark/Scala держим в отдельном gitlab-репо, там гоняем тесты. делаем сборку и деплой джарника в Nexus-репощиторий
2) в отдельном gitlab-репо храним ДАГи Airflow, которые содержат логику шедулинг (запускать раз в час), ссылку на имя джарника и имя App-класса с нужной логикой Спарка.
3) запуск спарк-задания происходит в теле ДАГа Airflow через LivyBatchOperator, которому передается url до джарника в Nexus и имя App-класса. причем URL до джарника содержит переменную часть (версия сборки), которая хранится в переменных Airflow
4) в ходе CI/CD-деплоя git-репо со Spark-кодом через Airflow REST API обновляется переменная в Airflow, указывающая на актуальную версию джарника в Nexus