我不理解气流中的“主人”。 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:权限被拒绝:user = airflow, ....
我认为我的工作是使用“max”用户运行的,但很显然,使用“airflow”用户运行测试。
我希望如果我使用'max'用户运行我的任务,我该怎么做。
答案 0 :(得分:1)
我想出了这个问题。 因为我在/ home / airflow /中设置了AIRFLOW_HOME,所以只有airflow可以访问这个文件目录。
答案 1 :(得分:0)
我已通过将用户airflow
和所有其他拥有任务的用户添加到一个组中,然后授予整个组权限来读取,写入和执行airflow
家中的文件来缓解这种情况。不确定这是否是最佳做法,但与将owner
设置为每个DAG的airflow
相比,它是否有效并使owner
字段有用。