10

我不了解气流中的“所有者”。ower的评论是“任务的所有者,推荐使用unix用户名”。我写了一些以下代码。

   Default_args = {
'owner': 'max',
'depends_on_past': False,
'start_date': datetime(2016, 7, 14),
'email': ['max@test.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),  

}

dag = DAG('dmp-annalect', default_args=default_args,
                schedule_interval='30 0 * * *')

pigjob_basedata = """{local_dir}/src/basedata/basedata.sh > 
{local_dir}/log/basedata/run_log &
""".format(local_dir=WORKSPACE)

task1_pigjob_basedata = BashOperator(
task_id='task1_pigjob_basedata',owner='max',
bash_command=pigjob_basedata ,
dag=dag)

但是我使用了命令“airflow test dagid taskid 2016-07-20”,我遇到了一些错误,... {bash_operator.py:77} INFO - put: Permission denied: user=airflow, ....

我以为我的工作是使用“最大”用户运行的,但显然是使用“气流”用户运行测试。

我希望如果我使用“最大”用户运行我的任务,我应该怎么做。

4

2 回答 2

4

我想通了这个问题。因为我在/home/airflow/中设置了AIRFLOW_HOME,所以只有airflow可以访问这个文件目录。

于 2016-07-22T08:57:35.513 回答
0

我通过将用户airflow和所有其他拥有任务的用户添加到组中来缓解这种情况,然后授予整个组在airflow家中读取、写入和执行文件的权限。不确定这是否是最佳实践,但它有效并且使该owner字段比设置airflowowner每个 DAG 的更有用。

于 2018-10-16T22:20:52.283 回答