Airflow 1 8 工作流平台搭建

2021-08-10 06:07:59 字數 2919 閱讀 3983

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