airflow分散式部署踩坑記錄之安裝篇
阿新 • • 發佈:2019-02-04
前言
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介面了
至此完成基礎安裝,其他內容詳見下篇。