安装Airflow
1、配一下DNS,否则啥都装不了
vi /etc/resolv.conf
search localdomain
nameserver XXX.XXX.XX.XX
2、安装python3、pip3
- 安装必要工具 yum-utils ,它的功能是管理repository及扩展包的工具 (主要是针对repository)
yum install yum-utils
- 使用yum-builddep为Python3构建环境,安装缺失的软件依赖,使用下面的命令会自动处理
yum-builddep python
-
完成后下载Python3的源码包(笔者以Python3.5为例),Python源码包目录: https://www.python.org/ftp/python/ ,截至发博当日Python3的最新版本为 3.7.0
-
安装python3
tar xf Python-3.5.0.tgz
cd Python-3.5.0
./configure
make
make install
至此你已经在你的CentOS系统中成功安装了python3、pip3、setuptools,查看python版本
3、安装Airflow
升级pip3到最新版,这个不做会报错
pip3 install --upgrade pip
安装
pip3 install apache-airflow
我没有指定文件夹,所以安装在了root目录下,/root/airflow
4、安装Mysql
如果已经装了mariadb,需要先删除
rpm -qa | grep mariadb #查看mariadb安装包
rpm -e <mariadb包名> --nodeps #卸载mariadb
下载安装包mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
解压
tar -xvf mysql-8.0.18-1.el7.x86_64.rpm-bundle.tar
安装Mysql
1 rpm -ivh mysql-community-common-8.0.18-1.el7.x86_64.rpm
2 rpm -ivh mysql-community-libs-8.0.18-1.el7.x86_64.rpm
3 rpm -ivh mysql-community-client-8.0.18-1.el7.x86_64.rpm
4 rpm -ivh mysql-community-server-8.0.18-1.el7.x86_64.rpm
5 rpm -ivh mysql-community-devel-5.7.24-1.el7.x86_64.rpm
启动服务
systemctl start mysqld.service
systemctl enable mysqld
找到密码
cat /var/log/mysqld.log | grep password
修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新的密码';
flush privileges;
给airflow建账号
create user 'airflow'@'%' identified by '123';
grant all privileges on airflow.* to 'airflow'@'%';
flush privileges;
set explicit_defaults_for_timestamp = 1; --这一行至关重要
create database airflow CHARACTER SET = utf8;
安装python的mysql依赖
5、配置airflow连接mysql
修改airflow.cfg:/root/airflow/airflow.cfg
sql_alchemy_conn = mysql://airflow:password@localhost:3306/airflow
初始化数据库
airflow db init
- 报错No module named ‘MySQLdb’,发下没装python的数据库库,安装之
pip3 install pymysql
pip3 install mysqlclient
- 报错Exception: Global variable explicit_defaults_for_timestamp needs to be on (1) for mysql
进入mysql airflow 数据库,设置global explicit_defaults_for_timestamp
show global variables like '%timestamp%';
set global explicit_defaults_for_timestamp =1;
恩,太好了,初始化成功!
airflow webserver -p 80
airflow scheduler
网站应该起来了,需要登录,创建用户名和登录密码
airflow users create --username admin --firstname admin --lastname admin --role Admin --email xxx@163.com
输入密码,创建成功。浏览器访问,输入用户名、密码。