前言
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界面了
至此完成基礎安裝,其他內容詳見下篇。