apache-flink - 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 的超时设置或其他方式来避免此错误?
解决方案
详细说明史蒂夫所说的......问题可能是正在使用的HTTP客户端没有足够大的“连接池”。
每个与单个存储桶交互的 S3A 客户端(作为单个用户)都有自己的专用开放 HTTP 1.1 连接池以及用于上传和复制操作的线程池。默认池大小旨在在性能和内存/线程使用之间取得平衡。
有关您可以调整的内容的良好概述(其中包括请参阅此 Hadoop 页面fs.s3a.connection.max
的“调整选项”部分。
推荐阅读
- amazon-web-services - 我应该做很多较小的请求,还是使用 s3 做更少但更大的请求来传递数据
- python-3.x - 在 xlib 上使用 ctypes 时出现分段错误
- node.js - 如何将 node.js express 服务器转换为 AWS lambda?
- php - 如何修复 PHP 中的未定义变量错误
- dart - 使用云功能检测在线状态
- javascript - 查找数组中的值满足条件的数组索引
- pyspark - Pyspark - 在火花数据框中获取值的第一列出现
- r - 在 R 中从头开始创建一个 ggplot() 来说明结果
- python - “没有模块命名...” - 尽管代码似乎可以工作,但编辑器中的错误
- c++ - 如何在 C++ 中使用带有“do while”循环的计数器?