如何解决如何修复 Airflow DAG 日志中的“无法从工作程序获取日志文件不支持的 URL 协议”错误?
我正在通过 docker 通过此映像运行 Airflow apache/airflow:2.1.0
请参阅此 thread 了解我遇到的初始错误。
目前我可以运行我以前存在的 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
解决方法
我没有解决方案,但我有一个线索。
显然,问题是一个错误,如您所知,如果任务甚至无法运行,Airflow 就会阻止其存储日志。
因此,不是语法错误的东西会导致错误。就我而言,我 80% 确定是 Airflow 没有选择正确的路径到我的 config 和 utils 文件夹,因此,任务做的第一件事是尝试使用存储在该文件夹中的功能和凭据,但不能,所以立即在能够存储一些日志之前崩溃。也许我可以在 yaml 文件上做一些事情。
顺便说一句,昨天我在多个平台上看到了你的问题,但没有任何答案,我想告诉你,我的灵魂与你在这场使上帝遗弃的气流 DAG 工作的十字军东征中产生了共鸣。我感觉到你了,兄弟。
,同样的问题。 我在 K8S 集群中使用 CeleryExecutor。 每个组件都作为独立的 pod 运行(部署中)。 我的第一个想法:这可能与缺少挂载卷(带文件)有关。 我会尝试安装 PVC 并提供信息,如果它有效
,我遇到了同样的问题。对我来说,运行开始时任务失败的原因是我的工作人员没有对挂载的日志目录(共享驱动器上的 ro mount)的写权限。一旦我确定一切都开始工作了。
,如果您使用另一种方法来修复它:
首先,输入以下内容获取配置文件:
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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。