【问题标题】:Airflow webserver can't recognize Airflow Scheduler in docker-compose气流网络服务器无法识别 docker-compose 中的气流调度程序
【发布时间】:2022-08-15 19:12:58
【问题描述】:
version: \"3.7\"
services:
    postgres:
        image: \"postgres:13\"
        container_name: \"postgres\"
        environment:
          - POSTGRES_USER=airflow
          - POSTGRES_PASSWORD=airflow
          - POSTGRES_DB=airflow
        ports:
        - \"5431:5431\"
        volumes:
        - ./data/postgres:/var/lib/postgresql/data


   webserver:
        image: jh111/airflow-hadoop-spark:test
        restart: always
        networks:
            - default_net
        environment:
            - AIRFLOW_HOME=/home/airflow
            - AIRFLOW__CORE__LOAD_EXAMPLES=False
            - AIRFLOW__CORE__dags_folder=/home/airflow/dags
        volumes:
            - ../dags:/home/airflow/dags #DAG folder
        ports:
            - \"7777:7777\"
        depends_on:
            - postgres
        command: bash -c \"airflow webserver --port 7777\"
    scheduler:
        image: jh111/airflow-hadoop-spark:test
        restart: always
        networks:
            - default_net
        environment:
            - AIRFLOW_HOME=/home/airflow
            - AIRFLOW__CORE__LOAD_EXAMPLES=False
            - AIRFLOW__CORE__dags_folder=/home/airflow/dags
            - AIRFLOW_WEBSERVER_HOST=webserver
        volumes:
            - ../dags:/home/airflow/dags #DAG folder
        depends_on:
            - postgres
        command: bash -c \"airflow scheduler\"

networks:
    default_net:

我检查了气流网络服务器和调度程序是否正在服务器上运行。 但是,当我进入 webserver UI 时,即使文件夹中有 dag,我也无法在 web UI 中找到任何 dag。

调度程序似乎没有运行。

我怎么解决这个问题?

  • 当你运行docker ps -a 时你看到了什么?那应该显示正在运行的 docker 图像。查看调度程序是否正在运行且没有错误。

标签: docker docker-compose airflow


【解决方案1】:

默认的气流执行程序是SequentialExecutor,使用这个执行程序,气流调度程序和网络服务器应该在同一主机上运行,​​这意味着相同的 docker 映像,并且它们使用 sqlite 作为数据库(您创建的 postgres 服务未使用,和AIRFLOW_WEBSERVER_HOST 不是气流配置)。

要将airflow连接到postgres服务器并解耦airflow webserver和调度程序,您可以使用LocalExecutor,在这种情况下,您可以在单独的容器中运行每个组件,它们将与数据库交互以相互通信。

您可以通过将这两个环境变量添加到 webserverscheduler 服务来做到这一点:

AIRFLOW__CORE__SQL_ALCHEMY_CONN=postgresql+psycopg2://airflow:airflow@postgres/airflow
AIRFLOW__CORE__EXECUTOR=LocalExecutor

您可以查看this project,它可以帮助您使用LocalExecutor 创建和运行自定义气流图像。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 2018-06-09
    • 2023-04-04
    • 1970-01-01
    相关资源
    最近更新 更多