前面几篇文档已经装好airflow,配好rest API

现在需要做单步骤可调用,所以必须使用Celery Executor,否则不能单步执行

1、安装redis

参考Centos7下安装redis

Redis网址

  • 下载文件,解压启动
tar -zxvf redis-4.0.11.tar.gz
cd redis-4.0.11
make      #编译
cp redis.conf src/  #将配置文件复制以可执行文件同一目录
cd src
./redis-server redis.conf
  • 为了让其后台执行,修改配置文件
daemonize no

改成

daemonize yes

保存后指定redis.conf文件启动

./redis-server redis.conf

查看后台进程,看是否起了

[root@localhost src]# ps -ef|grep redis
root     36983     1  0 15:54 ?        00:00:00 ./redis-server 127.0.0.1:6379
root     37514  9409  0 15:54 pts/1    00:00:00 grep --color=auto redis

测试看看,是不是能上

  • 远程连接

远程要看一下redis数据,所以需要配置远程连接。
我用的redis解压目录下的src目录内的redis.conf
修改他
找到

bind 127.0.0.1
protected-mode yes

改成

bind 0.0.0.0 
protected-mode no

重启
远程windows机器上,用redis desktop Manager连接一下。应该是能连上
这样是不安全的,最好还是设置个密码

  • 设置密码

继续改redis.conf,找到requirepass

requirepass 你的密码

重启服务

再次连接就变成了

./redis-cli -p 6379 -a 你的密码

2、配置 airflow.cfg

注意这三个变量分的挺远的,仔细找找

executor = CeleryExecutor
# 配置celery的broker_url			(存储要执行的命令然后celery的worker去消费)
broker_url = redis://127.0.0.1:6379/0
# 配置celery的result_backend  (存储任务执行状态)、 也可以用redis存储
result_backend = db+mysql://airflow:123456@www.burukeyou.com:3306/airflow?charset=utf8

3、启动

#启动webserver
#后台运行  airflow webserver -p 80 -D
airflow webserver -p 80

#启动scheduler
#后台运行  airflow scheduler -D
airflow scheduler
#启动worker
#后台运行  airflow worker -D
#如提示addres already use ,则查看 worker_log_server_port = 8793 是否被占用,如是则修改为 8974 等
#未被占用的端口
airflow celery worker
#启动flower -- 可以不启动
#后台运行  airflow flower -D
airflow celery flower

4、启动一个dag
启动的方式很多

  • 1、网页上trigger
  • 2、命令行方式

airflow dags trigger <dag_id>

airflow dags trigger oug_dags
  • 3、REST API方式

5、启动一个task

  • 运行task

airflow tasks run <dag_id> <task_id> <execution_date>

airflow tasks run oug_dags test1 '2021-05-19 10:16:00'

时间必须写,执行完后在Airflow网页上看不到执行,要到flower的tasks网页上才能看到
celery的监控页面flower:http://***:5555。执行单位是task,同一个dag的不同task可能被分配到不同的worker执行,可以从flower页面看到执行节点

  • 重跑/回溯历史任务( 不知道为什么backfill会报错,用dags trigger能执行,学艺不精吧!)
airflow dags backfill <dag_id> --start-date 2015-06-01 --end-date 2015-06-07

下一节讲如果利用redis及分布式计算trigger DAGS以及执行tasks

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐