При запуске Airflow на Oracle linux 7, run_as_user сбой. Есть ли способ исправить или обойти это.
Журнал ошибок:
[2020-01-09 17:47:46,529] {base_task_runner.py:113} INFO - Job 2: Subtask main_trigger sudo:
Illegal option -E
[2020-01-09 17:47:46,529] {base_task_runner.py:113} INFO - Job 2: Subtask main_trigger usage:
sudo -V | -h | -L | -l | -v | -k | -K | [-H] [-P] [-S] [-b] [-p prompt]
[2020-01-09 17:47:46,530] {base_task_runner.py:113} INFO - Job 2: Subtask main_trigger
[-u username/#uid] -s | <command>
[2020-01-09 17:47:55,892] {logging_mixin.py:112} INFO - [2020-01-09 17:47:55,892]
{local_task_job.py:103} INFO - Task exited with return code 1
[2020-01-09 18:01:47,724] {taskinstance.py:655} INFO - Dependencies all met for
<TaskInstance:
airflow_rest_v01.main_trigger 2020-01-01T00:00:00+00:00 [queued]>
[2020-01-09 18:01:47,733] {taskinstance.py:655} INFO - Dependencies all met for
<TaskInstance: airflow_rest_v01.main_trigger 2020-01-01T00:00:00+00:00 [queued]>
Я передаю команду в аргументах по умолчанию как:
default_args = {
'owner': 'me',
'start_date': dt.datetime(2020, 1, 1),
'retries': 1,
'retry_delay': dt.timedelta(seconds=5),
'provide_context': True,
'run_as_user': 'bot'
}
with DAG('airflow_rest_v01',
default_args=default_args,
schedule_interval='@once',
) as dag:
spark_path = '/user/spark/bin/spark-submit'
main_trigger_job = BashOperator(task_id='main_trigger',
bash_command=spark_path+' --master yarn –-num-executors 4 --executor-cores 4 --executor-memory 15g trigger.py')
бот часть группы пользователей в системе. Похоже, что Airflow пытается запустить команду с параметром -E, но она не поддерживается. Любой другой путь?
Редактировать:
Единственное решение, которое я нашел, было редактировать исходный код airflow / airflow / task / task_runner / base_task_runner.py
В функции _ init _ класса BaseTaskRunner удаление -E из этой конкретной строки решило проблему.
popen_prepend = ['sudo', '-E', '-H', '-u', self.run_as_user]
Тем не менее, я думаю, что следует быть лучшим способом справиться с этим.