注意:該插件目前只適用於Python2,對於Python3的環境不適合。
集成DAG生成插件
1、在github上下載該插件並上傳到服務器上並解壓,github地址爲:
https://github.com/lattebank/airflow-dag-creation-manager-plugin
封裝docker鏡像時將文件打包到AIRFLOW_HOME目錄的plugins目錄
同時封裝鏡像時,因爲該插件還集成了安全認證,但使用的flask-login模塊與當前的airflow自動下載的模塊版本不匹配,先卸載原來的flask-login
pip uninstall flask-login
pip install flask-login:0.2.11
部署使用
在部署k8s或者docker應用時,修改配置文件airflow.cfg,在最後添加如下配置
[dag_creation_manager]
# DEFAULT: basis
dag_creation_manager_line_interpolate = basis
# Choices for queue and pool 使用的池
dag_creation_manager_queue_pool = mydefault:mydefault|mydefault
# MR queue for queue pool 使用的隊列
dag_creation_manager_queue_pool_mr_queue = mydefault:mydefault
# Category for display
dag_creation_manager_category = custom
# Task category for display
dag_creation_manager_task_category = custom_task:#ffba40
# Your email address to receive email
# DEFAULT:
dag_creation_manager_default_email = [email protected]
dag_creation_manager_need_approver = False
dag_creation_manager_can_approve_self = True
# 地址
dag_creation_manager_dag_templates_dir = /usr/local/airflow/plugins/dcmp/dag_templates
該插件啓用之後,許多功能會被屏蔽掉,此處不開啓,如果需要開啓在Airflow.cfg中的[webserver]配置:
authenticate = True
auth_backend = dcmp.auth.backends.password_auth
第一次執行時需要先升級一下現有的airflow數據庫
python /opt/airflow/plugins/dcmp/tools/upgradedb.py
這樣就可以打開web界面來使用ui界面編寫管理dag了
打開UI界面,選擇“Admin”下的“Pools”
使用介紹
下拉到底部,填寫DAG相關配置,此處配置每分鐘執行一次
在下方填寫該TASK的名稱及腳本類型與腳本代碼等信息,此處腳本內容爲向/tmp/airflow.dat文件定時輸入“*************************”:
再點擊“ADD TASK”,將會在上面的“task1”節點後添加一個task,此處的規則是要在哪個task後添加一個任務,先點擊該task,再點擊“ADD TASK”:
再添加一個與task1同級的task,向/tmp/airflow.log定期輸出當前時間:
修改依賴,將task1和task3都作爲task2的依賴:先點擊task2,點擊Change Upstream,選擇task3
回到主界面之後,該DAG不會馬上被識別出來,默認情況下Airflow是5分鐘掃描一次dag目錄,該配置可在airflow.cfg中修改。
識別出來之後打開主界面,點擊“暫停按鈕”取消暫停開始執行:
參考:https://cloud.tencent.com/developer/article/1424491