我有一个Flink作业,它在Map操作符中有很大的状态。我们正在采取保存点,它有大约80 S3的存储到AWS S3。对于这个操作符,我们有大约100个并行性。但是,当我们从保存点恢复时,总是会出现如下的异常
原因是: s3a://xxxx/UbfK/flink/savepoints/logjoin/savepoint-a9600e-39fd2cc07076/f9a31490-461a-42f3-88be-ec169145c35f :未能在s3a://adshonor-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:上0处打开java.io.InterruptedIOException,无法执行HTTP请求:超时等待池中的连接。
是否有配置参数来在Flink中增加AWS S3的超时设置,或者其他避免此错误的方法?
发布于 2019-01-11 11:27:11
尝试将fs.s3a.connection.maximum设置为50或100左右
发布于 2019-01-11 18:12:42
为了详细说明Steve说了什么……问题很可能是,正在使用的HTTP客户机没有足够大的“连接池”。
与单个桶交互的每个S3A客户机(作为单个用户)都有自己的专用开放HTTP1.1连接池,以及用于上载和复制操作的线程池。默认池大小的目的是在性能和内存/线程使用之间取得平衡。
要了解可以优化的内容(包括fs.s3a.connection.max ),请参阅这个Hadoop页面的“优化选项”部分。
发布于 2019-07-12 03:54:06
因为Flink使用AWS连接代码,所以要执行的设置是fs.s3.maxConnections,这与纯Hadoop配置不一样。
在AWS上运行时,您可以参考以下文档:https://aws.amazon.com/cn/premiumsupport/knowledge-center/emr-timeout-connection-wait/
https://stackoverflow.com/questions/54129325
复制相似问题