環境 :html
ubuntu 14.04 LTSpython
python 2.7mysql
script:web
設置環境變量:redis
export AIRFLOW_HOME=~/airflow
安裝相關依賴包:sql
sudo apt-get install python-dev sudo apt-get install python-numpy sudo pip install airflow sudo pip install markupsafe sudo pip install sqlalchemy sudo pip install dateutil sudo pip install mako sudo pip install werkzeug sudo pip install itsdangerous sudo pip install wtforms sudo pip uninstall python-daemon sudo pip install python-daemon
sudo apt-get install python-pandas
最後兩行代碼解決這個問題:https://issues.apache.org/jira/browse/AIRFLOW-344docker
以後修改配置文件,不讓加載hive相關東東。數據庫
vi ~/airflow/airflow.cfg
第62行:apache
load_examples = Falseflask
初始化默認數據庫:
airflow initdb
運行web服務器
airflow webserver -p 8080
可能還須要安裝一個包
sudo pip install flask_wtf
效果圖:
運行helloworld (tutorial.py)python ~/airflow/dags/tutorial.py
若是任務看到了,但沒執行,看這裏:https://airflow.incubator.apache.org/faq.html#why-isn-t-my-task-getting-scheduled
發現hello world一直沒有執行, 手工執行了一把,說要celeryExecutor
因而裝唄
sudo pip install 'airflow[mysql,celery]'
celery須要celery包,默認backend用redis
sudo pip install celery
sudo pip install redis
以及重裝pandas(celery 須要 0.15.2 以上版本, apt-get install默認爲0.13)
sudo pip install pandas
會有警告,最終提示成功。
重啓全部服務:
airflow initdb
airflow worker
airflow webserver -p 8080
airflow scheduler
若是順利,從新手動執行任務,將會看到如下頁面:
附帶核心配置文件改動處: ~/airflow/airflow.cfg
[core] executor = CeleryExecutor sql_alchemy_conn=mysql://airflow:airflow@localhost:3306/airflow load_examples = False [celery] broker_url = redis://127.0.0.1:6379/5 celery_result_backend = redis://127.0.0.1:6379/6
ps:
1.須要安裝mysql,新建airflow數據庫,建立用戶airflow,密碼airflow
2.須要安裝redis(本例中是無密碼的)
3.若是嫌部署麻煩, 能夠考慮下docker 鏡像: https://hub.docker.com/r/puckel/docker-airflow/
4. 在centos6.8上裝特別順利(運行時貌似一切都正常,就是任務一直處於running狀態---debug了一番源代碼, 發現內存要必需夠大,發現必需用非root身份運行airflow worker, 務必保證核數夠用,不然須要調低dag_concurrency, max_active_runs_per_dag,max_threads,parallelism, 不然worker出現莫名其妙的問題)
worker 服務自己啓動celery的消費進程。
scheduler服務啓動celery的生產者進程。
webserver則展示web頁面,無關緊要。
5. 登陸驗證, 參考這裏:http://pythonhosted.org/airflow/security.html?highlight=authentication#web-authentication
先:
sudo pip install airflow[password]
6. airflow跑着跑着就掛了,一看內存還夠用(可能須要不要錢的加內存),若是你處處找不到想要的錯誤日誌。那麼看看AIRFLOW_HOME下面是否是莫名其妙的多了幾個 .err/.out 的文件,進去看看會有收穫。
7. executor用LocalExecutor可能相對穩定。 celeryExecutor貌似各類問題(https://www.mail-archive.com/commits@airflow.incubator.apache.org/msg03411.html)(出問題的系統:centos 6.8 Final)
也許跟系統有關。。。。
====
轉載請註明來源:http://www.cnblogs.com/Tommy-Yu/p/6230527.html
謝謝!