我在ubuntu机器上本地运行airflow,我的airflow.cfg文件在目录中:/home/airflow/airflow
所以我为我的dag创建了一个子目录,即/home/airflow/airflow/dags/
,并在那里创建了一个dag。
我创建的用于检查示例输出的dag是:
from datetime import datetime, timedelta
from airflow import DAG
from airflow.operators.bash import BashOperator
default_args = {
'owner': 'airflow',
'retries': 5,
'retry_delay': timedelta(minutes=2)
}
with DAG(
dag_id='our_first_dag',
default_args=default_args,
description='This is our first dag that we write',
start_date=datetime(2022, 7, 29, 2),
schedule_interval='@daily'
) as dag:
task1 = BashOperator(
task_id='first_task',
bash_command="echo hello world, this is the first task!"
)
task1
然后我运行airflow dags list
检查是否检测到它,得到以下输出:
$ airflow dags list
dag_id | filepath | owner | paused
=================+==================+=========+=======
our_first_dag | our_first_dag.py | airflow | False
但是当我重新启动我的气流调度程序和Web服务器,并运行dag时,我得到以下错误作为我的输出:
*** Log file does not exist: /home/airflow/airflow/logs/dag_id=our_first_dag_v5/run_id=manual__2022-11-13T01:35:03.807018+00:00/task_id=first_task/attempt=4.log
*** Fetching from: http://:8793/log/dag_id=our_first_dag_v5/run_id=manual__2022-11-13T01:35:03.807018+00:00/task_id=first_task/attempt=4.log
*** Failed to fetch log file from worker. Request URL is missing an 'http://' or 'https://' protocol.
目录内容包括:
-rw-rw-r-- 1 airflow airflow 50564 Nov 12 12:56 airflow.cfg
-rw-r--r-- 1 airflow airflow 454656 Nov 11 13:07 airflow.db
-rw-r--r-- 1 airflow airflow 7 Nov 12 18:12 airflow-webserver.pid
drwxrwxr-x 3 airflow airflow 4096 Nov 12 18:08 dags
drwxrwxr-x 4 airflow airflow 4096 Nov 12 17:56 logs
-rw-rw-r-- 1 airflow airflow 4743 Nov 11 12:57 webserver_config.py
我的气流中没有docker-compose.yaml
文件。
任何帮助将不胜感激谢谢!我不知道为什么我得到这个错误。
1条答案
按热度按时间dzhpxtsq1#
我把
airflow.cfg
中的执行器从CeleryExecutor
改为SequentialExecutor
,它对我很有效。我不知道为什么celery 执行器不工作,它无论如何都不理想,但至少dags现在在运行。