更多airflow資料淹遵,可查看:airflow從入門到精通學習筆記系列
DAG概念
DAG(有向無環(huán)圖)服赎,在airflow中定義一個有依賴的作業(yè)執(zhí)行集合雇卷,包含有一組特定的作業(yè)任務(wù)苗踪,每個任務(wù)都是一系列具體的操作命令。
- Task為DAG中具體的作業(yè)任務(wù)荠割,任務(wù)一般是一個具體的操作,如執(zhí)行某條shell命令旺矾、執(zhí)行某個python腳本等蔑鹦;
- DAG中包含有多個任務(wù)Task及Task之間的執(zhí)行依賴關(guān)系、調(diào)度時間箕宙;
官方樣例
"""
Code that goes along with the Airflow tutorial located at:
https://github.com/apache/airflow/blob/master/airflow/example_dags/tutorial.py
"""
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': ['airflow@example.com'],
'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(
'tutorial', default_args=default_args, schedule_interval=timedelta(days=1))
# t1, t2 and t3 are examples of tasks created by instantiating operators
t1 = BashOperator(
task_id='print_date',
bash_command='date',
dag=dag)
t2 = BashOperator(
task_id='sleep',
bash_command='sleep 5',
retries=3,
dag=dag)
templated_command = """
{% for i in range(5) %}
echo "{{ ds }}"
echo "{{ macros.ds_add(ds, 7)}}"
echo "{{ params.my_param }}"
{% endfor %}
"""
t3 = BashOperator(
task_id='templated',
bash_command=templated_command,
params={'my_param': 'Parameter I passed in'},
dag=dag)
t2.set_upstream(t1)
t3.set_upstream(t1)
配置說明
- DAG類定義了一個tutorial名稱的DAG嚎朽;
- DAG類的schedule_interval參數(shù)定義了調(diào)度策略為每天執(zhí)行一次;
- t1柬帕、t2哟忍、t3定義了三個Bash執(zhí)行器的Task;
- t1的bash_command參數(shù)指定這個任務(wù)的具體操作雕崩,即執(zhí)行date命令魁索;
- t3任務(wù)的使用了jinja傳入?yún)?shù);
- set_upstream定義了依賴關(guān)系盼铁,即t2粗蔚、t3依賴于t1,需等待t1執(zhí)行完發(fā)觸發(fā)執(zhí)行饶火;
常用的配置文件管理命令
- 配置文件的存放路徑:$AIRFLOW_HOME/dags
[root@node0 data]# ls $AIRFLOW_HOME/dags
__pycache__ tutorial.py
- 查看已存在的FDAG配置
[root@node0 data]# airflow list_dags
-------------------------------------------------------------------
DAGS
-------------------------------------------------------------------
tutorial
- 查看指定DAG配置中的子任務(wù)Task
[root@node0 data]# airflow list_tasks tutorial
print_date
sleep
templated
更多airflow資料鹏控,可查看:airflow從入門到精通學習筆記系列
如發(fā)現(xiàn)文中有錯誤致扯,望留言指明,萬分感激当辐;
如對此文章內(nèi)容感興趣抖僵,想進一步探討,可以留言交流缘揪;
如想轉(zhuǎn)發(fā)此文章耍群,請留言協(xié)商一下,切勿不指明出處的轉(zhuǎn)發(fā)找筝,尊重原創(chuàng)蹈垢;
如閱讀過程中有收獲,并想感謝一下袖裕,歡迎打賞曹抬;
----小林幫