airflow 部署

环境 :

ubuntu 14.04 LTS

python 2.7

script:

设置环境变量:

export AIRFLOW_HOME=~/airflow

 

安装相关依赖包:

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-344

 

之后修改配置文件,不让加载hive相关东东。

vi ~/airflow/airflow.cfg

第62行:

load_examples = False

 

初始化默认数据库:

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

谢谢!

posted @ 2016-12-28 18:29  tommy.yu  阅读(8467)  评论(0编辑  收藏  举报