Centos7下Airflow(1.10)+celery+redis 安装
- 2019 年 10 月 31 日
- 筆記
Centos7下Airflow(1.10)+celery+redis 安装
安装环境及版本
centos7
Airflow 1.10.0
Python 3.6.8
Mysql 5.6
redis 3.3
安装
数据库安装
略(自行百度)
- 注意开启远程连接(关闭防火墙)
- 字符集统一修改为UTF8(utf8mb4也可以)防止乱码
- 高版本的mysql 或者Maria DB 会出现VARCHAR(5000)的报错 建议低版本
- 原因是高版本的数据库为了效率限制了VARCHER的最大长度
- postgresql还没有试以后补充python安装略(自行百度)
- 请将python加入环境变量(方便)
airflow安装
- 参考https://airflow.apache.org/howto/executor/use-celery.html?highlight=celery
- 添加环境变量 vim ~/.bashrc
添加一行环境变量
export AIRFLOW_HOME=/opt/airflow - 安装airflow及相关组件# 此环境变量仅需要设置成临时变量即可并不需要配置成永久变量 export SLUGIFY_USES_TEXT_UNIDECODE = yes
安装airflow
pip install apache-airflow
安装airflow 相关依赖
pip install 'apache-airflow[mysql]' pip install 'apache-airflow[celery]' pip install 'apache-airflow[redis]'
配置
修改配置文件
- 修改${AIRFLOW_HOME}/airflow.cfg
# sqlalchemy链接 sql_alchemy_conn = mysql://username:password@localhost:3306/airflow # 配置执行器 executor=CeleryExecutor # 配置celery的broker_url broker_url = redis://lochost:5379/0 # 配置元数据信息管理 result_backend = db+mysql://username:password@localhost:3306/airflow
创建用户(worker 不允许在root用户下执行)
# 创建用户组和用户 groupadd airflow useradd airflow -g airflow # 将airflow目录修用户组 我的供参考 /usr/local/python3/bin/airflow cd /usr/local/python3/bin/airflow chgrp -R airflow airflow
启动
# 前台启动web服务 airflow webserver # 后台启动web服务 airflow webserver -D # 前台启动scheduler airflow scheduler # 后台启动scheduler airflow scheduler -D
启动worker
- 方法一# worker主机只需用普通用户打开airflow worker # 建立普通用户: # 创建用户test useradd airflow # 对用户test设置密码 passwd airflow # 在root用户下,改变airflow文件夹的权限,设为全开放 chmod -R 777 /opt/airflow # 切换为普通用户,执行airflow worker命令就行 airflow worker
- 启动成功显示如下
worker.png - 方法二
# 执行worker之前运行临时变量(临时的不能永久使用) export C_FORCE_ROOT="true" # 不需要切换用户 cd /usr/local/python3/bin/ # 前台启动worker服务 ./airflow worker # 后台启动web服务 ./airflow work