Ich habe gerade begonnen Apache Luftstrom zu verwenden. Ich versuche, test.sh-Datei von der Luftströmung zu laufen, aber es ist nicht Arbeit.BashOperator läuft nicht Bash Datei Apache Luftstrom
Im Anschluss an mein Code, Dateiname test.py
import os
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import datetime, timedelta
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'email': ['[email protected]'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
# 'queue': 'bash_queue',
# 'pool': 'backfill',
# 'priority_weight': 10,
# 'end_date': datetime(2016, 1, 1),
}
dag = DAG('test', default_args=default_args)
# t1 and t2 are examples of tasks created by instantiating operators
t1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag)
create_command = "sh home/ubuntu/test/inst/scripts/test.sh"
if os.path.exists(create_command):
t2 = BashOperator(
task_id= 'cllTest',
bash_command=create_command,
dag=dag
)
else:
raise Exception("Cannot locate {}".format(create_command))
t2.set_upstream(t1)
ist, wenn ich Python ~/Airflow/dags/test.py laufen, ist es kein Fehler wirft.
jedoch Wenn ich Luftstrom list_dag laufen, wirft es Fehler folgende:
[2017-02-15 20:20:02,741] {__init__.py:36} INFO - Using executor SequentialExecutor
[2017-02-15 20:20:03,070] {models.py:154} INFO - Filling up the DagBag from /home/ubuntu/airflow/dags
[2017-02-15 20:20:03,135] {models.py:2040} ERROR - sh home/ubuntu/test/inst/scripts/test.sh
Traceback (most recent call last):
File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/airflow/models.py", line 2038, in resolve_template_files
setattr(self, attr, env.loader.get_source(env, content)[0])
File "/home/ubuntu/anaconda2/lib/python2.7/site-packages/jinja2/loaders.py", line 187, in get_source
raise TemplateNotFound(template)
TemplateNotFound: sh home/ubuntu/test/inst/scripts/test.sh
ich versucht habe How to run bash script file in Airflow für Antwort auf verwendet, ist es nicht
Wo ich Fehler mache funktioniert?