Airflow1和Airflow2使用的是不同的调度器。Airflow1使用的是CeleryExecutor,而Airflow2使用的是用于Kubernetes的KubernetesExecutor。因此,它们生成的日志具有不同的格式。要解决这个问题,可以使用不同的命令格式来查看日志,或者可以在KubernetesPodOperator的参数中设置不同的 logging_config 字段来修改日志格式。
示例:
airflow worker
kubectl logs task_id
from kubernetes.utils import logging_config
from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
logging_config["loggers"][""]["handlers"] = ["console"]
logging_config["handlers"]["console"]["formatter"] = "airflow"
logging_config["formatters"]["airflow"] = {
"format": "%(asctime)s %(levelname)s - %(message)s",
"datefmt": "%Y-%m-%d %H:%M:%S"
}
task = KubernetesPodOperator(
dag=dag,
namespace="default",
image="busybox",
name="task_name",
task_id="task_id",
cmds=["echo", "hello world"],
logging_config=logging_config
)