и готовый локально docker контейнер со spark логикой.
Мне нужно, чтобы airflow для определенной таски пошел в kubernetes кластер, поднял там имеющийся контейнер со spark, и запустил там спарк джобу.
С кубернетисом я никогда не работал
Отдельного спарк кластера нет, нужно делать это через кубернетис.
Подскажите, я в целом правильно понимаю пайплайн?
0) Видимо, сначала нужно где-то в реджистри кубернетиса зарегистрировать этот docker образ со спарком (если такое вообще есть у него? Если нет, то как доставить на кубернетис нужный контейнер?
1) Затем нужно сделать новый под kubernetespodoperator'ом на основе этого образа?
2) Затем после этого отправить на этот под команду, видимо, этим оператором
Приветствуются любые комментарии/мысли по тому, как правильно заставить работать связку Airflow+Spark+k8s
Спасибо!
1. Ставишь k8s 2. В него хелмом деплоишь оператор 3. В airflow в сокдинения прокидываешь ключ кубера 4.пишешь даг и выкидываешь туда Спарк оператор таску деплоишь манифест 5. Profit
а потом говорят что быть dataops сложно )
ну на медиуме статей 5 или 6 про это есть
лучше настроить Airflow для запуска задачи Spark непосредственно внутри кластера Kubernetes с помощью KubernetesExecutor. Это позволит Airflow создавать и управлять подами Spark внутри кластера Kubernetes, а не запускать их в отдельных контейнерах. Или я не так прочел
Спасибо за ответ! Я за любой бест-практис-движ. Пока не доводилось пользоваться кубером, поэтому написал как ориентировочно это представляю. В целом имел в виду, что этот готовый докер контейнер должен подняться в кубернетисе (ну я так думаю), по команде таски из эирфлоу. И следующей командой спарк должен запуститься внутри этого контейнера внутри кубернетис кластера (ну или это все одной командой делается? хз) Можешь пожалуйста скинуть ссылок на кубер операторы, которые могут понадобиться, про которые почитать?
https://github.com/GoogleCloudPlatform/spark-on-k8s-operator
а вот сейчас обидно было)
Обсуждают сегодня