centos7 安装airflow
由于airflow是个比较新的东西,安装时,不免踩了很多坑。什么centos7 数据库需要换成mariadb,什么yum install python-mysql ,坑死人。可能这也跟系统的环境有关,因为版本不同,命令也不同。下面的步骤希望能帮到大家!
1.先测试自己的环境是否有wget命令,没有的话需要进行安装:
sudo yum -y install wget (当然,环境配置好网络)
2.看看是否有gcc,没有的话需要进行安装:
yum install gcc (后续安装airflow如果不成功,可以再次执行,它会更新包)
3.想安装airflow,需先安装pip,而安装pip,需先安装setuptools
以下链接地址皆是python官网https://www.python.org/里的。也可以根据自己的需要安装所需的版本
(1)下载setuptools:
wget https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz#md5=c607dd118eae682c44ed146367a17e26
解压:tar -zxvf setuptools-19.6.tar.gz
cd setuptools-19.6
编译:python setup.py build
安装:python setup.py install
(2)下载pip-9.0.1.tar.gz:
wget https://pypi.python.org/packages/11/b6/abcb525026a4be042b486df43905d6893fb04f05aac21c32c638e939e447/pip-9.0.1.tar.gz#md5=35f01da33009719497f01a4ba69d63c9
同上一步骤一样,解压,编译,安装
版本参考链接:https://pypi.python.org/pypi/pip
(3)pip install paramiko
(4)安装airflow前,还需要安装依赖的环境:
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
然后进行尝试安装:
pip install airflow #(这个是1.8版本,博主亲测没问题. )(现在有1.8.3版本了 pip install apache-airflow)
如果成功,那就恭喜。如出现以下错误:
致命错误:Python.h:没有那个文件或目录
#include <Python.h>
^
编译中断。
error: command 'gcc' failed with exit status 1
centos7:输入 yum install python-devel.x86_64
再次:pip install airflow
当出现:“Successfully installed.....”字眼,说明airflow安装成功了!
4.设置变量,初始化数据库
export AIRFLOW_HOME=~/airflow
airflow initdb
会在~/airflow 目录下生成配置文件
(如果想设置成永久变量,可以在/etc/profile里添加,添加后记得source /etc/profile)
5.启动服务
airflow webserver
在浏览器中输入: IP:8080端口进行访问
--------------------------------------------------------------------------------------------------------------
6.修改数据库配置
可以在~/airflow 目录下,修改airflow.cfg配置文件,数据库连接改为本地mysql的URL
先在mysql数据库里新建airflow数据库
然后修改airflow.cfg配置文件:
sql_alchemy_conn = sqlite:root/airflow/airflow.db 改为:
sql_alchemy_conn = mysql://root:root@192.168.202.128:3306/airflow
接着重新初始化数据库:
airflow initdb
如果成功,则在airflow数据库表中可以看到很多表
如出现以下报错,则执行:yum install MySQL-python (注意此命令为centos7系统适合)
return __import__('MySQLdb') ImportError: No module named MySQLdb
再次初始化:airflow initdb
成功!!!
7.如果你输入命令: yum install MySQL-python显示已安装且是最新版本
那么接着处理: pip install PyMySQL
然后再次初始化: airflow initdb
认真看报错信息,如图:
进行编辑,在脚本开头处加入:
保存退出.
方法解析:MySQLdb只支持Python2.*, 还不支持3.*
可以用PyMySQL替代,然后导入到脚本里,即可正常使用.
参考链接:https://www.cnblogs.com/TaleG/p/6735099.html