1. 程式人生 > >airflow分散式部署踩坑記錄之安裝篇

airflow分散式部署踩坑記錄之安裝篇

前言

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介面了
    

    這裡寫圖片描述

至此完成基礎安裝,其他內容詳見下篇。