airflow 是airbnb公司開源的,是用 python 實現的任務管理、排程、監控工作流的平台。因依排程賴於 crontab ,airflow 目前只支援在安裝在 linux 系統平台。airflow 可以用做
data pipeline(etl)、 訊息佇列等監控。
mysql資料庫安裝(將作為元資料庫):
# yum install gcc libffi-devel python-devel openssl-devel
# 建立相關資料庫及賬號
mysql> create database airflow default charset utf8 collate utf8_general_ci;
mysql> create user airflow@'localhost' identified by 'airflow';
mysql> grant all on airflow.* to airflow@'localhost';
mysql> flush privileges;
airflow 安裝配置:
# 配置 airflow 的 home 目錄
> mkdir -p /usr/local/airflow/
# echo "export airflow_home=/usr/local/airflow" >> /etc/profile
> source /etc/profile
# 安裝 airflow
> pip install airflow
# 配置元資料庫
> vi /usr/local/airflow/airflow.cfg
# dialect+driver://username:password@host:port/database
sql_alchemy_conn = mysql://airflow:airflow@localhost:3306/airflow
# 注意:使用的mysql socket路徑為:socket=/var/lib/mysql/mysql.sock
# 初始化元資料庫連線(預設sqlite)
> airflow initdb
# 啟動web服務(不指定埠時預設埠:8080)
> airflow webserver -p 8080
# 新增防火牆規則或停止防火牆
> systemctl stop firewalld.service
# 遠端開啟管理視窗
airflow 服務管理:
# 安裝程序管理工具supervisord管理airflow程序
> easy_install supervisor
> echo_supervisord_conf > /etc/supervisord.conf
# 編輯檔案supervisord.conf,新增啟動命令
> vi /etc/supervisord.conf
[program:airflow_web]
command=/usr/bin/airflow webserver -p 8080
[program:airflow_scheduler]
command=/usr/bin/airflow scheduler
# 啟動supervisord服務
/usr/bin/supervisord -c /etc/supervisord.conf
#此時可以用 supervisorctl 來管理airflow服務了
安全認證
# 新增密碼模組
> pip install airflow[password]
# 啟用訪問認證
> vim /usr/local/airflow/airflow.cfg
[webserver]
authenticate = true
auth_backend = airflow.contrib.auth.backends.password_auth
# 在 python 中執行新增賬戶:
import airflow
from airflow import models, settings
from airflow.contrib.auth.backends.password_auth import passworduser
user = passworduser(models.user())
user.username = 'afuser'
user.email = '[email protected]'
user.password = 'afuser'
session = settings.session()
session.add(user)
session.commit()
session.close()
exit()
# 重啟 airflow_web 服務
官方文件:
Airflow 1 8 工作流平台搭建
airflow 是airbnb公司開源的,是用 python 實現的任務管理 排程 監控工作流的平台。因依排程賴於 crontab airflow 目前只支援在安裝在 linux 系統平台。airflow 可以用做 data pipeline etl 訊息佇列等監控。mysql資料庫安裝 將作為元資...
工作流平台幫助目錄
1 windows工作流基礎 1.1 windows工作流基礎概覽 1.1.1 windows工作流基礎概念 1.2 windows工作流基礎程式設計指南 1.2.1 windows工作流基礎程式設計的介紹 1.2.2 開發工作流 1.2.3 windows工作流基礎 活動 1.2.4 開發工作流活...
靈活可擴充套件的工作流管理平台Airflow
airflow是airbnb開源的乙個用python寫就的工作流管理平台 workflow management platform 在前一篇文章中,介紹了如何用crontab管理資料流,但是缺點也是顯而易見。針對於crontab的缺點,靈活可擴充套件的airflow具有以下特點 下表給出airflo...