您在哪里查看气流作业的输出

Dan*_*Dan 4 airflow

在气流教程中,BashOperators的输出(通过echo)。如果任务在调度程序中运行,那么您在哪里查看输出?有控制台吗?我确定我只是在找对地方。

akk*_*kki 7

如果任务在 Airflow 中,以下是在 Web UI 中查找其日志的方法:

  1. 单击任务的 DAG 名称

在此处输入图片说明

  1. 点击任务运行 在此处输入图片说明

  2. 单击打开的弹出窗口中的“查看日志”按钮

在此处输入图片说明

  1. 日志页面将打开(需要不断刷新才能实时查看日志)。

在此处输入图片说明

  • 我认为这与 @zack 提到的相同,但我已经准备好了图片,所以我还是发布了它,以防有人发现它有用。 (2认同)

Zac*_*ack 6

就像@ tobi6所说,您可以根据环境在Web服务器或控制台中查看DAG运行的输出。

为此,请在您的网络服务器中:

  1. 选择您刚运行的DAG,然后输入Graph View
  2. 在该DAG中选择要查看其输出的任务。
  3. 在以下弹出窗口中,单击View Log
  4. 在下面的日志中,您现在可以看到输出,或者将获得指向该页面的链接,您可以在其中查看输出(例如,如果您使用的是Databricks,则最后一行可能是“ INFO-查看运行状态,Spark UI ,并登录到domain.cloud.databricks.com#job / jobid / run / 1“)。

如果要从运行中查看日志,请在airflow_home目录中查看。

  • 来自Airflow官方文档的以下日志信息:

用户可以在airflow.cfg中指定一个日志文件夹。默认情况下,它位于AIRFLOW_HOME目录中。

此外,用户可以提供一个远程位置,用于在云存储中存储日志和日志备份。目前,支持Amazon S3和Google Cloud Storage。要启用此功能,必须按照以下示例配置airflow.cfg:

[core]
# Airflow can store logs remotely in AWS S3 or Google Cloud Storage. Users
# must supply a remote location URL (starting with either 's3://...' or
# 'gs://...') and an Airflow connection id that provides access to the storage
# location.
remote_base_log_folder = s3://my-bucket/path/to/logs
remote_log_conn_id = MyS3Conn
# Use server-side encryption for logs stored in S3
encrypt_s3_logs = False
Remote logging uses an existing Airflow connection to read/write logs. If you don’t have a connection properly setup, this will fail.
Run Code Online (Sandbox Code Playgroud)

在上面的示例中,Airflow将尝试使用S3Hook('MyS3Conn')。

在Airflow Web UI中,本地日志优先于远程日志。如果找不到或访问本地日志,将显示远程日志。请注意,仅在任务完成(包括失败)后,日志才会发送到远程存储。换句话说,运行任务的远程日志不可用。日志以{dag_id} / {task_id} / {execution_date} / {try_number} .log的形式存储在日志文件夹中。

  • 刚刚看到@akki 的答案,并意识到我应该单击表示任务运行的方框,而不是图中表示任务的圆圈。道歉。 (2认同)

lor*_*vcs 5

在Airflow 2中查看日志:

  1. 打开一个达格
  2. 单击针对任务显示的方块(代表单个任务运行;如果失败,方块为红色,如果成功,方块为绿色)。这将在右侧打开详细信息。
  3. 单击右侧详细信息选项卡上的“日志”按钮。

在此输入图像描述