我在一个Map操作员那里有一份很大的工作。我们正在将存储容量约为80gb的savepoint存储到awss3。这个操作符大约有100个并行度。然而,当我们从保存点恢复时,总会出现类似这样的异常
原因:java.io.interruptedioexception:未能在s3a://adshonor-data-cube-test-apse1/ubfk/flink/savepoints/logjoin/savepoint-a9600e-39fd2cc07076/f9a31490-461a-42f3-88be-ec169145c35f上的0打开s3a://x/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的超时设置,或以其他方式避免此错误?
3条答案
按热度按时间gv8xihay1#
尝试设置
fs.s3a.connection.maximum
50或100左右xfb7svmp2#
因为flink使用aws连接代码,所以bump的设置是
fs.s3.maxConnections
,这与纯hadoop配置不同。在aws emr上运行时,可以参考以下文档:https://aws.amazon.com/cn/premiumsupport/knowledge-center/emr-timeout-connection-wait/
twh00eeo3#
请详细说明一下steve所说的…问题很可能是所使用的http客户端没有足够大的“连接池”。
作为单个用户,每个与单个bucket交互的s3a客户机都有自己的专用openhttp1.1连接池,以及用于上载和复制操作的线程池。默认池大小旨在平衡性能和内存/线程使用。
对于您可以调整的内容的良好概述(包括
fs.s3a.connection.max
请参阅本hadoop页面的“优化选项”部分。