【发布时间】:2020-12-08 21:16:01
【问题描述】:
我已经看到了一些关于从 PythonOperator 和 configuring Airflow logs 发出日志的信息,但还没有发现任何可以让我从容器化进程中发出日志的东西,例如DataProcPySparkOperator。
我已经在 Operator 集群中运行的 pyspark 脚本的顶部添加了以下内容:
import logging
logging.info('Test bare logger')
for ls in ['airflow', 'airflow.task', __name__]:
l = logging.getLogger(ls)
l.info('Test {} logger'.format(ls))
print('Test print() logging')
它不会产生任何输出,尽管 Operator 脚本会按预期运行。
我假设我可以从集群内建立到云存储(或数据库)的连接,也许可以捎带用于读取和写入文件的现有连接,但是......这似乎就像为了一个共同的需要做很多工作。我非常希望在计算的中间阶段获得关于记录数量或其他数据的偶尔引用的状态检查。
Airflow 是否默认在集群中设置 Python 记录器?如果是,我该如何访问它?
【问题讨论】:
-
此脚本是在 GCP 还是本地集群上运行,您要将日志发送到哪里?将一般 python 日志导出到 GCP 日志浏览器的一种可能方法是 - cloud.google.com/logging/docs/setup/python
-
脚本正在 GCP 上运行。感谢您的链接。会看的。如果可能的话,我希望日志包含在 Airflow 的正常任务执行日志中。
标签: python logging airflow google-cloud-dataproc