(2)Airflow之部署体验

1,476 阅读2分钟

Airflow组件介绍

Airflow只有一套代码,但是其中包含了多个组件:

  • webserver:webserver是一个web服务,启动之后,可以提供可视化的界面来查看和管理dag。
  • scheduler:scheduler是调度器,该服务不依赖webserver,调度器会调度执行任务

Airflow有本地部署(Running Airflow locally)和Docker部署(Running Airflow in Docker)两种方式,两种方式官网都有介绍

本地部署

环境要求

airflow是基于python开发的,所以,不管任何平台,先需要有python环境,版本要求可以去airflow官网查看,这里是python3.8.12,需要安装的版本是airflow2.1.3

  1. Airflow需要一个home目录:
    • 新建目录~/airflow
    • 执行export AIRFLOW_HOME=~/airflow
  2. 安装airflow 呃,如果访问不了,可能需要想想办法了~
pip install apache-airflow==2.1.3 --constraint "https://raw.githubusercontent.com/apache/airflow/constraints-2.1.3/constraints-3.8.txt"
  1. 初始化数据库 airflow默认使用的sqllite,我们需要做什么配置,只需执行如下命令:
airflow db init

airflow users create \
    --username admin \
    --firstname Peter \
    --lastname Parker \
    --role Admin \
    --email xxx@163.com

其实到这里,我们已经安装好了airflow,如果需要手动执行任务的能力了,只是没有自动调度或者可视化界面,下面我们将两个服务启动

  1. 启动webserver
airflow webserver --port 8080

访问localhost:8080

  1. 启动scheduler
airflow scheduler

Docker部署

下载docker-compose.yml

$ curl -LO https://raw.githubusercontent.com/bitnami/bitnami-docker-airflow/master/docker-compose.yml

新建需要的目录&环境变量配置

$ mkdir -p ./dags ./logs ./plugins
$ echo -e "AIRFLOW_UID=$(id -u)\nAIRFLOW_GID=0" > .env

数据初始化

$ docker-compose up airflow-init

启动

$ docker-compose up

停止服务

$ docker-compose down --volumes --remove-orphans

访问localhos:8080

注意事项:

启动容器实例较多,注意内存是否够用


招聘

小红书,目前为数不多的靠谱的互联网独角兽,想上车的同学看过来呀~

急聘大数据开发、数据平台开发,其他部门岗位可以帮忙内推,求贤若渴...

感兴趣的留言加微信聊!!!