Airflow1.10版本,有UTC时区问题,所以还是使用airflow1.8.0
公司仍然是centos6.5,Python默认是2.6,而airflow使用Celery执行需要Python2.7,嗯,先准备新的Python环境
## http://hao.jobbole.com/pythonbrew/
## export PYTHONBREW_ROOT=/usr/local/.pythonbrew
yum install python-pip
# 默认安装在家目录
export PYTHONBREW_ROOT=/usr/local/.pythonbrew
pip install pythonbrew
## 各种坑
## 先下载Python源码包
wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz
#......
yum -y install python-devel mysql-devel
## 官方指导:安装依赖包 https://github.com/utahta/pythonbrew
yum -y install zlib-devel openssl-devel readline-devel
pythonbrew install Python-2.7.10.tgz
pythonbrew list
pythonbrew switch 2.7.10 # 升级Python也不错哦
## 安装 setuptools、pip
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py #安装pip的时候回自动安装 installed pip-10.0.1 setuptools-30.3.0 wheel-0.29.0
pip -V
pip list
安装airflow=1.8.0
echo -e '\nexport AIRFLOW_HOME=/opt/airflow\n' >>/etc/profile
source /etc/profile
echo $AIRFLOW_HOME
export AIRFLOW_HOME=/opt/airflow
pip install airflow==1.8.0
准备数据库,建议mysql5.6
###################################
mysql> create database airflowdb_18_221;
mysql> grant all on airflowdb_18_221.* to airflow@'192.168.204.%' identified by 'channel2';
mysql> flush privileges
安装必要的 subpackage
pip install airflow[mysql]
pip install airflow[redis]
pip install airflow[celery]
修改配置文件,找到对应的行就行修改
## 配置airflow.cfg
executor = CeleryExecutor
load_examples = False
sql_alchemy_conn = mysql://airflow:channel2@192.168.204.111:3306/airflowdb_18_221
broker_url = broker_url = redis://127.0.0.1:6379/8
celery_result_backend = db+mysql://airflow:channel2@192.168.204.111:3306/airflowdb_18_221
######################
## 配置airflow 发邮件
######################
smtp_host = smtp.qq.com
smtp_starttls = True
smtp_ssl = False
smtp_user = username@qq.com
smtp_port = 25
smtp_password = userpasswd
smtp_mail_from = username@qq.com
初始化数据库
## 初始化数据库
airflow initdb
cd /opt/airflow
mkdir dags plugins logs
启动相应的进程
airflow worker
airflow scheduler
airflow web
安装进程管理工具Supervisord管理airflow进程
easy_install supervisor
echo_supervisord_conf > /etc/supervisord.conf
# 编辑文件supervisord.conf,添加启动命令
vi /etc/supervisord.conf
[program:airflow_web]
command=/usr/bin/airflow webserver -p 8080
[program:airflow_worker]
command=/usr/bin/airflow worker
[program:airflow_scheduler]
command=/usr/bin/airflow scheduler
# 启动supervisord服务
/usr/bin/supervisord -c /etc/supervisord.conf
#此时可以用 supervisorctl 来管理airflow服务了
supervisorctl start airflow_web
supervisorctl stop airflow_web
supervisorctl restart airflow_web
supervisorctl stop all