部署如何与Airflow配合使用?

时间:2017-08-04 07:08:09

标签: airflow apache-airflow airflow-scheduler

我正在使用Celery执行程序和此dockerfile的设置。

我正在将我的dag部署到/usr/local/airflow/dags目录中的调度程序容器中。

我可以用命令运行我的dag:

$ docker exec airflow_webserver_1 airflow backfill mydag -s 2016-01-01 -e 2016-02-01 

我的dag包含一个简单的bash运算符:

BashOperator(command = "test.sh" ... )

操作员运行test.sh脚本。

但是,如果test.sh引用其他文件,例如callme.sh,则会收到“无法找到文件”错误。

e.g
$ pwd
/usr/local/airflow/dags/myworkflow.py

$ ls
myworkflow.py
test.sh
callme.sh

$ cat test.sh
echo "test file"
./callme.sh

$ cat callme.sh
echo "got called"

运行myworkflow时,会调用调用test.sh的任务,但无法找到callme.sh。

我发现这令人困惑。我有责任与工作人员或气流负责共享代码资源文件吗?如果它是我的,那么建议的方法是什么?我正在考虑使用安装在所有容器上的EFS,但它对我来说看起来非常昂贵。

1 个答案:

答案 0 :(得分:0)

对于芹菜执行者,您有责任确保每个工作人员都拥有运行作业所需的所有文件。