我们正在使用 Flink 1.9.0 Dataset API 从 Amazon S3 Bucket 读取 CSV 文件。大多数时候都面临连接池超时。以下是 Flink 级别的配置
一次从 s3 读取 19708 个对象,因为我们需要在整个数据集之上应用逻辑。举个例子:假设有 20 个源文件夹,例如(AAA、BBB、CCC)和多个子文件夹(AAA/4May2020/../../1.csv、AAA/4May2020/../../2.csv、 AAA/3May2020/../../1.csv ,AAA/3May2020/../../2.csv ....),为了读取发生,在调用 readCSV 之前,逻辑扫描文件夹并选择仅具有最新日期文件夹的文件夹并将其传递以供阅读。对于读取操作,我们使用并行度为“5”。但是当执行图形成时,所有 20 个源都聚集在一起。
在 Kube-Aws 上运行,大约 10 个任务管理器托管在“m5.4X 大型机器”下。任务管理器 docker 分配有“8”个内核和“50GB”内存。
以下试图解决这个问题,但到目前为止没有运气。真的需要一些指示和帮助来解决这个问题
- 启用 Flink 重试机制,将故障转移作为“区域”,有时重试可以通过。但即使重试,它也会间歇性地失败。
根据 AWS 站点重新访问 core-site.xml: fs.s3a.threads.max :3000, fs.s3a.connection.maximum :4500 任何人都可以帮助解决以下问题
无论如何要检查 readCSV 打开的 HTTP 连接是否
已关闭- 任何了解数据集 ReadCSV 如何操作的指针都会有所帮助。
- 有什么方法可以在读取之前引入等待机制?
- 任何更好的方法来解决这个问题