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安装

添加一行环境变量

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