前言
airflow是一款基于python的开源任务流调度系统,但是关于airflow的安装教程比较匮乏。本人在亲自安装的过程中遇到了很多奇葩的问题,期间也参考了网上的各种资料,在此做下记录,以备不时之需。
系统环境
- 操作系统 Centos6.5
- python 2.7.12
如果你拿到的是一台新安装了Centos6.5系统的机器,那么你可能要多做一些准备工作:
1.检查你的机器是否可以访问外网
执行ifconfig查看是否有外网IP,如果没有再编辑/etc/sysconfig/network-scripts/ifcfg-ens**(注:**表示机器网卡的编号),将其中的onboot修改成yes,然后reboot重启系统即可。
2.检查系统中默认python版本
执行 python --version,查看当前系统python版本,一般情况下python版本为2.6.6。
然后升级python2.6.6至python2.7:
>:下载Python-2.7.12
wget https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tgz
(注:如果提示没有wget,则执行yum install wget进行安装)
>:解压文件
tar -zxvf Python-2.7.12
>:编译安装
cd Python-2.7.12
./config
make all
make install
>:查看版本信息 并且 修改系统默认Python版本
/usr/local/bin/python2.7 --version
mv /usr/bin/python /usr/bin/python2.6.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
>:解决yum不兼容Python2.7的问题
vim /usr/bin/yum
(注:如果没有vim,则执行yum install vim进行安装即可)
修改文件头部为 #!/usr/bin/python2.6.6
3.安装开发工具包及其他依赖包
>:yum groupinstall -y "Development tools"
>:yum install -y zlib-devel bzip-devel openssl-devel ncurses-devel sqllite-devel
4.安装pip
>:wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
>:python get-pip.py
(注:如果报错:Could not find an activated virtualenv(required))
>:vim ~/.bashrc
>:添加 export PIP_REQUIRE_VIRTUALENV=false
>:source ~/.bashrc
>:重新执行 python get-pip.py即可
5.安装python模块pandas numpy
>:pip install pandas
>:pip install numpy
开始安装
如果你的基础环境都准备无误,那么安装airflow就是一件非常简单的事情,但是在使用pip直接安装的时候还是需要留意:
- 你需要在~/.bashrc文件中定义airflow的目录,如果不先设置,在初始化airflow的时候,会将配置文件等信息安放在~/airflow中。在~/.bashrc中添加配置信息
export AIRFLOW_HOME=your dir
并且source ~/.bashrc - 如果使用
pip install airflow
,你会发现安装的是airflow 1.8.0版本,并且最新版本也是1.8.0。因为airflow原是airBnb内部使用的系统,随着airflow系统的使用者逐渐增多,其在2016年加入Apache孵化器工程,成为Apache下的开源项目。 - 在安装的时候应该使用
pip install apache-airflow
进行安装,并且可以使用pip install apache-airflow==版本号
指定需要版本的airflow - 同时airflow项目中也有很多的扩展模块,为了方便,本人在安装的时候直接使用
pip install apache-airflow[all]==1.9.0
进行安装
本人在安装的时候使用的是1.9.0的版本,不幸的是该版本中存在一些缺陷,会在下一篇中进行解释,建议安装1.8.2版本,听同行介绍1.8.2版本是比较稳定的,但是具体情况不详在次不便多说。
- 安装完之后,airflow源码目录为
/usr/local/lib/python2.7/site-packages/
,配置文件以及其他信息在AIRFLOW_HOME
目录处 - 接下来执行
airflow initdb
对airflow进行初始化 然后执行
airflow webserver -p8080
启动airflow的web UI在此之前你还需要检查系统的防火墙,以及8080端口是否有其他进程占用 >:service iptables status (注:查看防火墙状态)
如果8080端口被墙 >:vim /tec/sysconfig/iptables (如下图红框中的格式添加需要开放的端口)
然后重启防火墙 >:service iptables restart 在浏览器中输入 127.0.0.1:8080 或者 localhost:8080 就可以看到airflow的web界面了
至此完成基础安装,其他内容详见下篇。