Bash Operator错误:气流中没有此类文件或目录

Mar*_*vin 6 python bash directed-acyclic-graphs airflow

我是Airflow的新手,并且与BashOperator苦苦挣扎。我想在dag.py中使用bash操作符访问shell脚本。

我检查了: 如何在Airflow中运行bash脚本文件,BashOperator不运行bash文件apache airflow

关于如何通过bash运算符访问shell脚本的信息。

这是我所做的:

 cmd = "./myfirstdag/dag/lib/script.sh "

        t_1 = BashOperator(
            task_id='start',
            bash_command=cmd
        )
Run Code Online (Sandbox Code Playgroud)

在运行配方并检查气流时,出现以下错误:

[2018-11-01 10:44:05,078] {bash_operator.py:77} INFO - /tmp/airflowtmp7VmPci/startUDmFWW: line 1: ./myfirstdag/dag/lib/script.sh: No such file or directory
[2018-11-01 10:44:05,082] {bash_operator.py:80} INFO - Command exited with return code 127
[2018-11-01 10:44:05,083] {models.py:1361} ERROR - Bash command failed
Run Code Online (Sandbox Code Playgroud)

不知道为什么会这样。任何帮助,将不胜感激。

谢谢 !

编辑注意:我假设它正在某个气流tmp位置而不是我提供的路径中搜索。但是,如何使它搜索正确的路径。

小智 7

尝试这个:

bash_operator = BashOperator(
    task_id = 'task',
    bash_command = '${AIRFLOW_HOME}/myfirstdag/dag/lib/script.sh '
    dag = your_dag)
Run Code Online (Sandbox Code Playgroud)


Bsq*_* ℬℬ 0

您确定您定义的路径吗?

cmd = "./myfirstdag/dag/lib/script.sh "
Run Code Online (Sandbox Code Playgroud)

与标题这意味着它是相对于您执行命令的路径。

你能试试这个吗?

cmd = "find . -type f"
Run Code Online (Sandbox Code Playgroud)