Amazon s3 无法执行HTTP请求:等待来自Flink中池的连接超时
我正在开发一个应用程序,它将一些文件上传到s3存储桶,然后从s3存储桶读取文件并将其推送到我的数据库 我正在使用flink1.4.2和fs.s3api从s3存储桶读取和写入文件 将文件上载到s3存储桶工作正常,没有任何问题,但当我的应用程序从s3读取上载文件的第二阶段启动时,我的应用程序抛出以下错误:Amazon s3 无法执行HTTP请求:等待来自Flink中池的连接超时,amazon-s3,apache-flink,flink-streaming,Amazon S3,Apache Flink,Flink Streaming,我正在开发一个应用程序,它将一些文件上传到s3存储桶,然后从s3存储桶读取文件并将其推送到我的数据库 我正在使用flink1.4.2和fs.s3api从s3存储桶读取和写入文件 将文件上载到s3存储桶工作正常,没有任何问题,但当我的应用程序从s3读取上载文件的第二阶段启动时,我的应用程序抛出以下错误: Caused by: java.io.InterruptedIOException: Reopen at position 0 on s3a://myfilepath/a/b/d/4: org.a
Caused by: java.io.InterruptedIOException: Reopen at position 0 on s3a://myfilepath/a/b/d/4: org.apache.flink.fs.s3hadoop.shaded.com.amazonaws.SdkClientException: Unable to execute HTTP request: Timeout waiting for connection from pool
at org.apache.flink.fs.s3hadoop.shaded.org.apache.hadoop.fs.s3a.S3AUtils.translateException(S3AUtils.java:125)
at org.apache.flink.fs.s3hadoop.shaded.org.apache.hadoop.fs.s3a.S3AInputStream.reopen(S3AInputStream.java:155)
at org.apache.flink.fs.s3hadoop.shaded.org.apache.hadoop.fs.s3a.S3AInputStream.lazySeek(S3AInputStream.java:281)
at org.apache.flink.fs.s3hadoop.shaded.org.apache.hadoop.fs.s3a.S3AInputStream.read(S3AInputStream.java:364)
at java.io.DataInputStream.read(DataInputStream.java:149)
at org.apache.flink.fs.s3hadoop.shaded.org.apache.flink.runtime.fs.hdfs.HadoopDataInputStream.read(HadoopDataInputStream.java:94)
at org.apache.flink.api.common.io.DelimitedInputFormat.fillBuffer(DelimitedInputFormat.java:702)
at org.apache.flink.api.common.io.DelimitedInputFormat.open(DelimitedInputFormat.java:490)
at org.apache.flink.api.common.io.GenericCsvInputFormat.open(GenericCsvInputFormat.java:301)
at org.apache.flink.api.java.io.CsvInputFormat.open(CsvInputFormat.java:53)
at org.apache.flink.api.java.io.PojoCsvInputFormat.open(PojoCsvInputFormat.java:160)
at org.apache.flink.api.java.io.PojoCsvInputFormat.open(PojoCsvInputFormat.java:37)
at org.apache.flink.runtime.operators.DataSourceTask.invoke(DataSourceTask.java:145)
at org.apache.flink.runtime.taskmanager.Task.run(Task.java:718)
at java.lang.Thread.run(Thread.java:748)
我能够通过增加s3a API的max connection参数来控制这个错误
到目前为止,我在s3存储桶中有大约1000个文件,由我的应用程序在s3存储桶中推拉,我的最大连接数是3000个。我正在使用Flink的parallelism从s3 bucket上传/下载这些文件。我的任务管理器计数为14。
这是一个间歇性故障,我也有这个场景的成功案例
我的问题是
根据我通过Flink(批处理)工作流处理S3中大量文件的经验,我提前发表了一些评论:
fs.s3.maxConnections
,这与纯Hadoop配置不同