Apache Airflow Как указать пользователя Unix при использовании BashOperator

В настоящее время моя команда тестирует Airflow для создания рабочих процессов заданий Spark. Мы используем Airflow версии 1.8.0. У нас есть веб-сервер Airflow, работающий на удаленном компьютере, к которому у всех есть доступ по SSH. Другой член команды - это тот, кто запустил веб-сервер из своего собственного приглашения, поэтому процесс отображается как запущенный под его именем пользователя.

Я создал свой собственный DAG для запуска на сервере, по сути, это просто последовательный рабочий процесс команд spark-submit с использованием BashOperator. Когда я запускаю эти задания через веб-интерфейс, они отправляются правильно, и я могу отслеживать их через браузер заданий HUE для нашего кластера. Проблема в том, что они не указаны как отправленные моим именем пользователя, они перечислены как отправленные именем пользователя члена команды, который запускает веб-сервер Airflow.

Есть ли способ указать, от имени какого пользователя будет работать BashOperator? Или есть лучшая практика, определяющая, как лучше всего обрабатывать все задачи BashOperator, отправляемые одним пользователем?

Любая помощь приветствуется, спасибо!

Изменить

Похоже, это может быть пробел в функциональности, описанный в Airflow-357 ... но я все равно хотел бы знать, есть ли обходной путь или метод / параметр, которые я упускаю.


person knowa42    schedule 26.10.2017    source источник


Ответы (1)


Попробуйте 'run_as_user': '' в default_args определения DAG.

Это приведет к тому, что sudo -c запустит BashOperator.

person user9902308    schedule 06.06.2018