4

我正在通过此图像通过 docker 运行 Airflowapache/airflow:2.1.0 请参阅此线程以了解我遇到的初始错误。

目前我能够运行我以前的现有 DAG。但是,当我添加较新的 DAGS 时,我在日志文件中收到以下错误。我很确定这不是内存或计算的问题。

*** Log file does not exist: /opt/airflow/logs/my-task/my-task/2021-06-15T14:11:33.254428+00:00/1.log
*** Fetching from: http://:8793/log/my-task/my-task/2021-06-15T14:11:33.254428+00:00/1.log
*** Failed to fetch log file from worker. Unsupported URL protocol ''

我已经尝试过的事情:

  • 重新启动我的容器
  • docker prune然后建设
  • 从前端删除 DAG
4

4 回答 4

3

我没有解决方案,但我有一个线索。

显然,问题是一个错误,如果任务甚至没有运行,则阻止 Airflow 存储日志,正如您已经知道的那样。

因此,不是语法错误的东西会导致错误。就我而言,我 80% 确定 Airflow 没有为我的 config 和 utils 文件夹选择正确的路径,因此,任务要做的第一件事是尝试使用存储在该文件夹中的功能和凭据,但无法立即使用在能够存储一些日志之前崩溃。可能我可以在 yaml 文件上做点什么。

顺便说一句,昨天我在多个平台上看到你的问题没有任何答案,我想告诉你,我的灵魂在这次十字军东征中与你产生了共鸣,以使该死的 Airflow DAG 工作。我感觉到你了,兄弟。

于 2021-07-01T06:46:18.267 回答
1

我有同样的问题。对我来说,运行开始时任务失败的原因是我的工作人员没有对挂载日志目录的写权限(在共享驱动器上挂载)。一旦我修复了一切都开始工作。

于 2021-07-02T12:00:45.683 回答
0

如果您使用另一种方法来修复它:

首先,通过键入以下命令获取配置文件:

helm show values apache-airflow/airflow > values.yaml 

之后检查 fixPermissions 是否为真。

persistence:
  # Enable persistent volumes
  enabled: true
  # Volume size for worker StatefulSet
  size: 10Gi
  # If using a custom storageClass, pass name ref to all statefulSets here
  storageClassName:
  # Execute init container to chown log directory.
  # This is currently only needed in kind, due to usage
  # of local-path provisioner.
  fixPermissions: true

通过以下方式更新您的安装:

helm upgrade --install airflow apache-airflow/airflow -n airflow -f values.yaml --debug
于 2021-07-06T15:34:14.650 回答
0

这里同样的问题。我在 K8S 集群中使用 CeleryExecutor。每个组件都作为独立的 pod 运行(正在部署中)。我的第一个想法:这可能与缺少未安装的卷(带文件)有关。我会尝试安装 PVC 并提供信息,如果它有效

于 2021-06-17T14:01:16.343 回答