用Airflow调度数仓(CK)的ETL脚本

本文介绍了如何使用Airflow安装、配置并调度数仓(Clickhouse)的ETL任务。从解决安装过程中的依赖问题,到启动Web GUI和调度器,再到创建并调试DAG,详细记录了每个步骤和可能遇到的问题及其解决方案。
摘要由CSDN通过智能技术生成

#安装

前提:安装了python,我这里是python3

下载

按照官网:
pip3 install apache-airflow
包太多,下载太慢
改为清华的镜像:
pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple apache-airflow
又有包找不到
最后用豆瓣的镜像(注意要加trusted):
pip3 install apache-airflow -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
下载非常快。
【报错】
unable to execute ‘gcc’: No such file or directory
error: command ‘gcc’ failed with exit status 1

【解决办法】

yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

【报错】
psutil/_psutil_common.c:9:20: fatal error: Python.h: No such file or directory
#include <Python.h>
^
compilation terminated.
error: command ‘gcc’ failed with exit status 1

【解决办法】

yum install python3-devel

修改后台数据库

  • 首次运行
    安装完以后,先运行一次:
    airflow initdb
    这时会创建好默认的配置文件,在~/airflow.cfg。
  • 修改配置
    将~/airflow.cfg中的:
1.executor = LocalExecutor
2.sql_alchemy_conn =  mysql://root:XX66xxx123@192.168.11.100/airflow?charset=utf8mb4
(**注意:需要提前在mysql中把数据库airflow创建好**)
(如果用pgsql,连接串为:postgresql+psycopg2://user:password@hostname/database_name)
  • 然后再次initdb
    airflow initdb
    【报错】
    ModuleNotFoundError: No module named 'MySQLdb’
    【解决办法】
    pip3 install mysqlclient
    【又报错】
    OSError: mysql_config not found
    【解决办法】

yum install mysql-devel
pip install mysqlclient

启动web GUI

airflow webserver -p 8090 -D
(因为8080被占用了)
![启动成功](https://upload-images.jianshu.io/upload_images/20370486-6ddfcde76c5087fe.png?
imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
这时候就可以在web页面管理了:登录http://127.0.0.1:8090
GUI

启动调度器

airflow scheduler -D
airflow scheduler

启停


重启webserver和scheduler

su airflow
 ps -ef|egrep ‘scheduler|airflow-webserver’|grep -v grep|awk ‘{print $2}’|xargs kill -9
 rm -rf /root/airflow/airflow-scheduler.pid 
 airflow webserver -p 8080 -D
  airflow scheduler -D
tail -f /root/airflow/airflow-scheduler.err

重启worker
su airflow
ps -ef|egrep ‘serve_logs|celeryd’|grep -v grep
 rm -rf /home/airfl

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值