这让我抓狂。
我正在云环境中设置气流。我有一台服务器运行调度程序和网络服务器,另一台服务器作为芹菜工作人员,我使用的是airflow 1.8.0。
运行作业效果很好。什么refuses工作就是记录。
我已经在两台服务器上的airflow.cfg中设置了正确的路径:
Remote_base_log_folder = s3://my-bucket/airflow_logs/
Remote_log_conn_id = s3_logging_conn
我已经在气流 UI 中设置了 s3_logging_conn,并使用了访问密钥和秘密密钥,如下所述here.
我使用检查连接
s3 = airflow.hooks.S3Hook('s3_logging_conn')
s3.load_string('测试','测试',bucket_name='我的桶')
This works在两台服务器上。因此连接已正确设置。然而,每当我运行任务时我得到的只是
*** 日志文件不是本地的。
*** 在这里获取:http://********
*** 无法从工作人员获取日志文件。
*** 读取远程日志...
无法从 s3://my-bucket/airflow_logs/my-dag/my-task/2018-02-15T21:46:47.577537 读取日志
我尝试按照预期的约定手动上传日志,但网络服务器仍然无法获取它 - 所以问题出在两端。我不知道该怎么办,到目前为止我读到的所有内容都告诉我这一点should正在工作。我快要安装 1.9.0 了,我听到了更改日志记录,看看我是否更幸运。
更新:我全新安装了 Airflow 1.9 并按照具体说明进行操作here.
Web 服务器现在甚至无法启动,并出现以下错误:
airflow.exceptions.AirflowConfigException:在配置中找不到部分/键 [core/remote_logging]
There is明确引用本节这个配置模板.
因此,我尝试删除它并仅加载 S3 处理程序而不先检查,但收到以下错误消息:
无法加载配置,包含配置错误。
回溯(最近一次调用最后一次):
文件“/usr/lib64/python3.6/logging/config.py”,第384行,在解析中:
自进口商(已使用)
ModuleNotFoundError:没有命名的模块
'airflow.utils.log.logging_mixin.RedirectStdHandler';
“airflow.utils.log.logging_mixin”不是一个包
我感觉这不应该是这样this hard.
任何帮助将不胜感激,干杯