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

    這裏寫圖片描述

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章