airflow分布式部署(四)airflow环境变量与参数配置

前面三步做完以后,就可以配置airflow的环境变量了

在此之前,可能需要先安装下依赖包

yum install mysql-devel gcc gcc-devel python-devel

之后切换到python36

conda activate py36

找到airflow的安装目录,配置到环境变量

#Airflow环境变量
export AIRFLOW_HOME=/root/airflow
export SITE_AIRFLOW_HOME=/root/miniconda3/envs/py36/lib/python3.6/site-packages/airflow
export PATH=$PATH:$SITE_AIRFLOW_HOME/bin
#生效环境变量
source /etc/profile

这个时候在/root/airflow下就会出现airflow.cfg文件,作如下修改

executor = CeleryExecutor
broker_url = redis://:${redis_password}@${redis_ip}:6379/0
result_backend = db+mysql://${username}:${password}@${mysql_ip}:3306/airflow
sql_alchemy_conn = mysql://${username}:${password}@${mysql_ip}/airflow
#这两个默认端口8793,5555被占用了,所以改成了新的netstat -tunlp | grep 5555
worker_log_server_port = 8795
flower_port = 5556

修改完配置文件,执行数据库初始化

airflow initdb

不报错就说明成功了,查看下mysql中airflow库下就会有airflow的表生成

然后启动airflow

#master服务器可以把如下服务都启动,worker只需要启动worker
airflow webserver -D
airflow scheduler -D
airflow worker -D
airflow flower -D

如果启动成功,说明配置没问题,就可以把airflow.cfg同步(rsync)到worker服务器将worker启动起来

正常情况根据airflow.cfg中的网址base_url 就可以找到airflow的web界面,代表webserver启动成功

#/root/airflow/airflow.cfg
base_url = http://localhost:8080

web_server_host = 0.0.0.0

web_server_port = 8080

根据flower_port,就可以找到flower监控UI,看到已经启动的worker

 一劳永逸解决python找不到airflow自定义模块的问题

管理员权限修改:/etc/profile。在最后一行加上:

export PYTHONPATH=$PYTHONPATH:/home/utlis/

然后运行如下代码,更新立即生效

source /etc/profile 
原文地址:https://www.cnblogs.com/wangbin2188/p/13925422.html