环境 :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
谢谢!