Airflow 1.8 工作流平台搭建

Airflow 是Airbnb公司开源的,是用 Python 实现的任务管理、调度、监控工作流的平台。因依调度赖于 crontab ,Airflow 目前只支持在安装在 Linux 系统平台。Airflow 可以用做 data pipeline(ETL)、 消息队列等监控。


Mysql数据库安装(将作为元数据库):

[sql]  view plain  copy
  1. # yum install gcc libffi-devel python-devel openssl-devel  
  2.   
  3. # 创建相关数据库及账号  
  4. mysql> create database airflow default charset utf8 collate utf8_general_ci;  
  5. mysql> create user airflow@'localhost' identified by 'airflow';  
  6. mysql> grant all on airflow.* to airflow@'localhost';  
  7. mysql> flush privileges;  

Airflow 安装配置:

[plain]  view plain  copy
  1. # 配置 airflow 的 home 目录  
  2. > mkdir -p /usr/local/airflow/{dags,logs,plugins}  
  3.   
  4. # echo "export AIRFLOW_HOME=/usr/local/airflow" >> /etc/profile  
  5. > source /etc/profile  
  6.   
  7. # 安装 airflow  
  8. > pip install airflow  
  9.   
  10. # 配置元数据库  
  11. > vi /usr/local/airflow/airflow.cfg  
  12. # dialect+driver://username:password@host:port/database  
  13. sql_alchemy_conn = mysql://airflow:airflow@localhost:3306/airflow  
  14.   
  15. # 注意:使用的mysql socket路径为:socket=/var/lib/mysql/mysql.sock  
  16.   
  17.   
  18. # 初始化元数据库连接(默认sqlite)  
  19. > airflow initdb  
  20.   
  21. # 启动web服务(不指定端口时默认端口:8080)  
  22. > airflow webserver -p 8080  
  23.   
  24. # 添加防火墙规则或停止防火墙  
  25. > systemctl stop firewalld.service  
  26.   
  27. # 远程打开管理窗口  
  28. http://192.168.40.10:8080/admin/  

Airflow 服务管理:

[plain]  view plain  copy
  1. # 安装进程管理工具Supervisord管理airflow进程  
  2. > easy_install supervisor  
  3. > echo_supervisord_conf > /etc/supervisord.conf  
  4.   
  5. # 编辑文件supervisord.conf,添加启动命令  
  6. > vi /etc/supervisord.conf  
  7.   
  8. [program:airflow_web]  
  9. command=/usr/bin/airflow webserver -p 8080  
  10.   
  11. [program:airflow_scheduler]  
  12. command=/usr/bin/airflow scheduler  
  13.   
  14.   
  15. # 启动supervisord服务  
  16. /usr/bin/supervisord -c /etc/supervisord.conf  
  17.   
  18. #此时可以用 supervisorctl 来管理airflow服务了  
  19. supervisorctl start airflow_web  
  20. supervisorctl stop airflow_web  
  21. supervisorctl restart airflow_web  
  22. supervisorctl stop all  



安全认证

[plain]  view plain  copy
  1. # 添加密码模块  
  2. > pip install airflow[password]  
  3.   
  4. # 启用访问认证  
  5. > vim /usr/local/airflow/airflow.cfg  
  6. [webserver]  
  7. authenticate = true  
  8. auth_backend = airflow.contrib.auth.backends.password_auth  
  9.   
  10. # 在 python 中执行添加账户:  
  11. import airflow  
  12. from airflow import models, settings  
  13. from airflow.contrib.auth.backends.password_auth import PasswordUser  
  14. user = PasswordUser(models.User())  
  15. user.username = 'afuser'  
  16. user.email = '[email protected]'  
  17. user.password = 'afuser'  
  18. session = settings.Session()  
  19. session.add(user)  
  20. session.commit()  
  21. session.close()  
  22. exit()  
  23.   
  24. # 重启 airflow_web 服务  
  25. > supervisorctl restart airflow_web  



官方文档:http://airflow.apache.org/project.html

猜你喜欢

转载自blog.csdn.net/ialexanderi/article/details/80578384
1.8