Airflow:如何通过 docker-compose.yml 安装 pip

Airflow:如何通过 docker-compose.yml 安装 pip

Airflow:如何通过 docker-compose.yml 安装 pip

简介

Apache Airflow 是一个用 Python 编写的可编程调度和监控系统。它可用于创建、调度和监视工作流,以及在工作流中处理任务。而在 Airflow 中,使用 Python 编写脚本时,常常需要使用 pip 来安装所需的库。在本文中,我们将介绍如何通过 docker-compose.yml 文件来安装 pip,并通过 Docker 容器运行 Airflow。

安装 Docker 和 Docker Compose

首先,您需要确保已在您的系统中安装了 Docker 和 Docker Compose。若尚未安装,请按照以下步骤进行安装。

安装 Docker

您可以按照以下链接的步骤来安装 Docker:
Get Docker Engine – Community for Ubuntu

安装 Docker Compose

安装 Docker Compose:

sudo apt install docker-compose

编写 docker-compose.yml 文件

现在,让我们创建一个名为 docker-compose.yml 的文件来配置我们的 Airflow 环境。

version: '3'
services:
  postgres:
    image: postgres:latest
    environment:
      POSTGRES_USER: airflow
      POSTGRES_PASSWORD: airflow
      POSTGRES_DB: airflow

  webserver:
    image: puckel/docker-airflow:1.10.9
    restart: always
    depends_on:
      - postgres
    environment:
      - LOAD_EX=n
      - EXECUTOR=Celery
      - POSTGRES_USER=airflow
      - POSTGRES_PASSWORD=airflow
      - POSTGRES_DB=airflow
    volumes:
      - ./dags:/usr/local/airflow/dags
      - ./scripts:/usr/local/airflow/scripts
    ports:
      - "8080:8080"

  scheduler:
    image: puckel/docker-airflow:1.10.9
    restart: always
    depends_on:
      - webserver
      - postgres
    command: scheduler
    environment:
      - LOAD_EX=n
      - EXECUTOR=Celery
      - POSTGRES_USER=airflow
      - POSTGRES_PASSWORD=airflow
      - POSTGRES_DB=airflow
    volumes:
      - ./dags:/usr/local/airflow/dags
      - ./scripts:/usr/local/airflow/scripts

  worker:
    image: puckel/docker-airflow:1.10.9
    restart: always
    depends_on:
      - webserver
      - postgres
    command: worker
    environment:
      - LOAD_EX=n
      - EXECUTOR=Celery
      - POSTGRES_USER=airflow
      - POSTGRES_PASSWORD=airflow
      - POSTGRES_DB=airflow
    volumes:
      - ./dags:/usr/local/airflow/dags
      - ./scripts:/usr/local/airflow/scripts

在上面的 docker-compose.yml 文件中,我们定义了四个服务:postgreswebserverschedulerworker

  • postgres 服务将作为 Airflow 的数据存储数据库。
  • webserver 服务是 Airflow 的 Web 服务器,用于管理和监控工作流。
  • scheduler 服务用于调度任务。
  • worker 服务用于执行任务。

构建和启动 Airflow

接下来,我们使用以下命令构建和启动 Airflow 服务。

docker-compose up -d

这将构建并启动我们在 docker-compose.yml 文件中定义的所有服务。一旦服务都启动完成,您可以通过在浏览器中访问 http://localhost:8080 来访问 Airflow 的 Web 界面。

安装 pip

现在我们要在 Docker 容器中安装 pip。为此,我们需要进入 webserver 容器。

docker-compose exec webserver bash

接着,在容器中运行以下命令来安装 pip。

apt update
apt install -y python-pip

安装完成后,您可以验证 pip 是否正确安装。

pip --version

运行 Airflow 任务

现在您已经在 Docker 容器中安装了 pip,您可以在 Airflow 中编写并运行任务。以下是一个简单的示例任务,将打印 “Hello, Airflow!” 信息。

dags 目录中创建一个 Python 脚本,如 hello_airflow.py

from airflow import DAG
from airflow.operators.python_operator import PythonOperator
from datetime import datetime

def print_hello():
    return 'Hello, Airflow!'

dag = DAG('hello_airflow', description='Simple DAG for printing Hello, Airflow!',
          schedule_interval='0 12 * * *',
          start_date=datetime(2022, 1, 1), catchup=False)

hello_operator = PythonOperator(
    task_id='print_hello',
    python_callable=print_hello,
    dag=dag,
)

hello_operator

保存脚本后,您可以上传到 dags 目录中并在 Airflow Web 界面中观察任务的运行。

结论

通过本文的步骤,您已经学会了如何通过 Docker Compose 安装 pip,并在 Airflow 中编写和运行任务。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程