首页 > 解决方案 > Apache Flink:从保存点启动作业时出现 AWS S3 超时异常

问题描述

我有一个 Flink 作业,它在 Map 运算符中具有很大的状态。我们正在将具有大约 80GB 存储空间的保存点存储到 AWS S3。这个算子我们有大约 100 个并行度。但是,当我们从保存点恢复时,总是会出现异常,例如

引起:java.io.InterruptedIOException:无法在 s3a://adshonor- 0 处打开 s3a://xxxx/UbfK/flink/savepoints/logjoin/savepoint-a9600e-39fd2cc07076/f9a31490-461a-42f3-88be-ec169145c35f data-cube-test-apse1/UbfK/flink/savepoints/logjoin/savepoint-a9600e-39fd2cc07076/f9a31490-461a-42f3-88be-ec169145c35f:org.apache.flink.fs.s3base.shaded.com.amazonaws.SdkClientException:无法执行 HTTP 请求:等待来自池的连接超时。

是否有配置参数来增加 Flink 中 AWS S3 的超时设置或其他方式来避免此错误?

标签: apache-flinkflink-streaming

解决方案


详细说明史蒂夫所说的......问题可能是正在使用的HTTP客户端没有足够大的“连接池”。

每个与单个存储桶交互的 S3A 客户端(作为单个用户)都有自己的专用开放 HTTP 1.1 连接池以及用于上传和复制操作的线程池。默认池大小旨在在性能和内存/线程使用之间取得平衡。

有关您可以调整的内容的良好概述(其中包括请参阅此 Hadoop 页面fs.s3a.connection.max的“调整选项”部分。


推荐阅读