airflow 测试安装
系统环境
centos 7
python 2.7.15
apache-airflow 1.10.0
yum install -y bzip2
yum install -y gcc-c++
yum install -y mysql-devel
创建系统用户
检查是否存在
id airflow
存在则删除
userdel -r airflow
groupdel airflow
创建用户
groupadd airflow
useradd -g airflow airflow
passwd airflow
切换用户
su - airflow
安装 python 环境
为避免编译麻烦及可能对系统环境产生影响,此处使用 miniconda
pip install configparser
安装 airflow
配置 airflow 环境变量
cd
vi .bashrc
----
export AIRFLOW_HOME=~/airflow
export SLUGIFY_USES_TEXT_UNIDECODE=yes
----
source .bashrc
安装 airflow
使用 pip 安装
pip install apache-airflow
pip install "apache-airflow[kubernetes]"
选择安装 Extra Packages
pip install "apache-airflow[crypto, password]"
pip install "apache-airflow[mysql]"
pip install "apache-airflow[celery]"
pip install "apache-airflow[redis]"
apache-airflow 1.9.0 默认安装的 sqlarchemy
初始化元数据库
airflow initdb
修改配置
默认 metastore 使用 sqlite,建议使用 mysql or postgres,以便使用 LocalExecutor
,CeleryExecutor
, DaskExecutor
,此处使用 mysql
初次初始化元数据库是产生的 airflow.db
文件可以删除
cd ~/airflow
rm -f airflow.db
修改配置文件
vi airflow.cfg
[core]
airflow_home = /home/airflow/airflow
dags_folder = /home/airflow/airflow/dags
base_log_folder = /home/airflow/airflow/logs
default_timezone = Asia/Shanghai
executor = LocalExecutor
sql_alchemy_conn = mysql://username:password@host:port/database
[webserver]
authenticate = True
auth_backend = airflow.contrib.auth.backends.password_auth # 需要自己添加这个参数
filter_by_owner = True
重新初始化元数据库
airflow initdb
创建 dag 目录
mkdir /home/airflow/airflow/dags
创建 web 用户
进入 python 命令行
>>> import airflow
>>> from airflow import models, settings
>>> from airflow.contrib.auth.backends.password_auth import PasswordUser
>>> user = PasswordUser(models.User())
>>> user.username = 'admin'
>>> user.email = 'example@example.com'
>>> user.password = 'admin'
>>> session = settings.Session()
>>> session.add(user)
>>> session.commit()
>>> session.close()
>>> exit()
启动 airflow
airflow webserver -p 8080
airflow scheduler