Airflow 1 8 工作流平台搭建

2021-08-20 12:04:05 字數 3193 閱讀 8342

airflow 是airbnb公司開源的,是用 python 實現的任務管理、排程、監控工作流的平台。

因依排程賴於 crontab ,airflow 目前只支援在安裝在 linux 系統平台。

airflow 可以用做 

data pipeline(etl)、 訊息佇列等監控。

mysql資料庫安裝(將作為元資料庫):

[sql] 

view plain

copy

# 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

allon

airflow.* 

toairflow@

'localhost'

;  mysql> flush privileges

;  airflow 安裝配置:

[plain] 

view plain

copy

# 配置 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 服務管理:

[plain] 

view plain

copy

# 安裝程序管理工具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服務了  

安全認證

[plain] 

view plain

copy

# 新增密碼模組  

> 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...