airflow 2.2.3部署(2022年最新版+史上最完整版)

服务器版本:

CentOS Linux release 7.9.2009 (Core)

部署程序版本:

python 3.9.0

airflow 2.2.3

mysql-8.0.28

一 安装python

为了避免不必要的报错直接全部运行安装以下命令

yum -y install zlib zlib-devel

yum -y install bzip2 bzip2-devel

yum -y install ncurses ncurses-devel

yum -y install readline readline-devel

yum -y install openssl openssl-devel

yum -y install openssl-static

yum -y install xz lzma xz-devel

yum -y install sqlite sqlite-devel

yum -y install gdbm gdbm-devel

yum -y install tk tk-devel

yum install gcc-c++

安装wget命令

# yum -y install wget

通过wget下载python

# wget https://www.python.org/ftp/python/3.9.0/Python-3.9.0.tgz

解压Python-3.9.0.tgz

# tar xzvf Python-3.9.0.tgz

解压后可以看到目录

进入目录

# cd Python-3.9.0

执行以下命令

./configure --with-ssl --prefix=/service/python3 

执行完成后

# make

执行完成后

# make install

如果遇到报错

ModuleNotFoundError: No module named '_ctypes'

解决办法

# yum install libffi-devel -y

然后在 make install 

制作新的指向Python3的软连接

# ln -s /service/python3/bin/python3 /usr/bin/python -f

建立pip的软连接

# ln -s /service/python3/bin/pip3 /usr/bin/pip -f

查看Python版本

# python -V

检测pip版本

# pip -V

#升级pip

# pip install --upgrade pip

如果报错

python 版本问题,现在是python 3版本,需要改成2版本,修改完成后再次执行即可。

# vim /usr/libexec/urlgrabber-ext-down

检查 yum 是否为2.7 ,如果不是在后面添加即可

# vim /usr/bin/yum

二 安装airflow

#设置临时环境变量

# export SLUGIFY_USES_TEXT_UNIDECODE=yes

#添加编辑环境变量

# vim /etc/profile

# 在最后添加以下内容:

export PS1="[\u@\h \w]\$ "

#Python环境变量

export PYTHON_HOME=/service/python3

export PATH=$PATH:$PYTHON_HOME/bin

#Airflow环境变量

export AIRFLOW_HOME=/root/airflow

export SITE_AIRFLOW_HOME=/service/python3/lib/python3.9/site-packages/airflow

export PATH=$PATH:$SITE_AIRFLOW_HOME/bin

#生效环境变量

# source /etc/profile

#安装apache-airflow并且指定2.2.3版本

# pip install apache-airflow===2.2.3

#为airflow安装mysql模块

# pip install 'apache-airflow[mysql]' 

如果遇见报错

可能需要安装 Python 3 和 MySQL 开发头文件和库,如下所示:

$ sudo apt-get install python3-dev default-libmysqlclient-dev build-essential # Debian / Ubuntu

% sudo yum install python3-devel mysql-devel # 红帽/CentOS

然后你现在可以通过 pip 安装 mysqlclient:

$ pip install mysqlclient

这时发现可以运行

# pip install 'apache-airflow[mysql]'

这里安装完成后启动airflow 报错 

看了下 是下载airflow mysql时安装了jinja2-2.11.3 我把 jinja2-2.11.3 卸载 重新安装jinja2 后发现正常启动。

# pip uninstall Jinja2  --卸载

# pip install Jinja2    --安装

启动db

# airflow db init

创建airflow登陆用户

airflow users create \
    --username root \
    --firstname s \
    --lastname am \
    --role Admin \
    --email 123456@qq.com

启动web服务和监控程序

# airflow webserver --port 8080 -D

# airflow scheduler -D

安装到这里你可以在浏览器通过localhost:8080打开页面了

三 Mysql安装

下载地址    ​​​​​​MySQL :: Download MySQL Community Server

我这里下载的这个

下载上传到服务器后解压,当然也可以用 wget直接下载

# tar -xvf mysql-8.0.28-el7-x86_64.tar.gz

移动并重命名一下

# mv mysql-8.0.28-el7-x86_64 /usr/local/mysql

创建mysql用户组和用户并修改权限

# groupadd mysql

# useradd -r -g mysql mysql

创建数据目录并赋予权限

# mkdir -p /data/mysql #创建目录

# chown mysql:mysql -R /data/mysql #赋予权限

配置my.cnf 没有就新建

# vim /etc/my.cnf

内容如下

[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4
symbolic-links=0
explicit_defaults_for_timestamp=true

初始化数据库

进入mysql的bin目录

# cd /usr/local/mysql/bin/

初始化

./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql –initialize

查看密码 并记录密码

# cat /data/mysql/mysql.err

启动mysql,并更改root 密码

先将mysql.server放置到/etc/init.d/mysql中

# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

启动!!!

# service mysql start

查看进程
# ps -ef|grep mysql

如果遇到报错

发现并没有/var/log/mariadb/mariadb.log这个路径,那我们就创建, 并给mysql用户授权即可

# mkdir /var/log/mariadb

# touch /var/log/mariadb/mariadb.log

# chown -R mysql:mysql  /var/log/mariadb/

再输入开启mysql服务, 搞定!

到这里说明mysql已经安装成功了!!

下面修改密码

首先登录mysql,输入前面的那个是随机生成的。

# ./mysql -u root -p   #bin目录下

输入新密码

再执行下面三步操作,然后重新登录。

alter user 'root'@'localhost' identified by '123456';
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;

为了能从外部访问 继续设置

use mysql                                          #访问mysql库
update user set host = '%' where user = 'root';    #使root能再任何host访问
FLUSH PRIVILEGES;                                  #刷新

不希望每次都到bin目录下使用mysql命令则执行以下命令

# ln -s /usr/local/mysql/bin/mysql /usr/bin

四 把airflow数据库换成mysql数据库

登陆mysql输入下面4段

create database airflow;
create user  'airflow'@'%' identified by '123456';
grant all privileges on *.* to 'airflow'@'%';
FLUSH PRIVILEGES;

设置MySQL对null的处理

set explicit_defaults_for_timestamp = 1;

对airflow配置文件(airflow.cfg)的设置

我的是在 /root/airflow/airflow.cfg

#打开你安装airflow的文件夹

# vim /root/airflow/airflow.cfg 

#设置两个属性
 
executor = LocalExecutor
 
sql_alchemy_conn = mysql+mysqlconnector://airflow:123456@localhost:3306/airflow
 
 
#这里可以设置时区为上海
default_timezone = Asia/Shanghai
 
#这里可以设置页面默认时区为上海
default_ui_timezone = Asia/Shanghai

为了airflow可以顺利重启把运行的进程全部 kill

#查询airflow运行的进程
ps aux |grep airflow  
 
#数据库加载
airflow db init
 
#启动web服务
airflow webserver --port 8080 -D

#启动监听
airflow scheduler -D

#数据库重启
airflow db upgrade
 

如果重启后不能访问,把这两个文件删除再次启动即可。

airflow-scheduler.pid 

airflow-webserver-monitor.pid

本次部署到这里就结束了,快登陆你部署的airflow愉快的使用吧~ 

如果遇到什么问题欢迎留言探讨! 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值