【问题标题】:Airflow task: OSError: [Errno 23] Too many open files in system气流任务:OSError:[Errno 23] 系统中打开的文件过多
【发布时间】:2021-03-04 16:40:08
【问题描述】:

是否有人在使用 S3PrefixSensor 时遇到过此错误?

OSError: [Errno 23] Too many open files in system: '/usr/local/lib/python3.6/dist-packages/botocore/data/endpoints.json'

当调度程序与该操作员同时运行超过 12 个任务时,我遇到了该错误。如果我手动重新运行它们,它们就可以正常工作。

我尝试按照这个问题的答案增加 ulimit,但它对我不起作用:Errno 24: Too many open files. But I am not opening files?

出现错误很奇怪,因为我同时只运行 12 个任务。是 S3 传感器操作员的问题吗?

【问题讨论】:

  • sudo lsof | grep -c endpoints.jsonulimit -a | grep 'open files'的输出是什么
  • @lllrnr101 第一个命令的输出是0,第二个命令是open files (-n) 500240
  • 该死!然后我会为这个问题添加书签,看看你最终是如何解决的。启动程序后我也会关注lsof | grep -c <PID>
  • 您是从airflow.sensors.s3_prefix_sensor.S3PrefixSensor 导入传感器吗?
  • @Elad 是的,我是。

标签: ubuntu airflow


【解决方案1】:

你在cmets中提到你使用airflow.sensors.s3_prefix_sensor.S3PrefixSensor 这是传感器的过时版本。

更新后的版本包含 PR 缓存钩子并防止每次传感器戳时创建新连接。

对于Airflow<2.0.0 安装backport provider

pip install apache-airflow-backport-providers-amazon

对于Airflow>=2.0.0 安装providers

pip install apache-airflow-providers-amazon

然后通过以下方式导入传感器:

from airflow.providers.amazon.aws.sensors.s3_prefix import S3PrefixSensor

【讨论】:

    猜你喜欢
    • 2020-03-07
    • 1970-01-01
    • 2018-08-12
    • 2019-04-11
    • 2016-04-21
    • 1970-01-01
    • 2020-05-19
    • 2021-06-19
    • 2022-11-23
    相关资源
    最近更新 更多