Flink读取大量S3文件触发AskTimeoutException问题排查与解决
处理Flink读取大量S3文件时的Akka超时问题
我有一个从S3路径读取文件的Flink项目,核心代码如下:
Path[] paths = s3BucketInfoList.stream().map(appendBucketNameAndPath()).toArray(Path[]::new); FileSource<String> fileSource = FileSource.forRecordStreamFormat(new TextLineInputFormat(), paths).build(); return execEnv.fromSource(fileSource, WatermarkStrategy.noWatermarks(), "file-input");
处理少量文件时程序运行正常,但处理大量文件时会抛出akka.pattern.AskTimeoutException异常,核心错误提示为接收Actor未回复。Task Manager无报错,日志显示“Successful registration at resource manager”,但Flink Dashboard中看不到运行中的任务,任务似乎从未开始读取文件。
查询FLINK-11143后了解到,这类任务提交超时问题通常是因为调用env.readFile创建输入DataSet阶段,在S3中列出过多文件导致的。我当前使用的FileSource.forRecordStreamFormat是readTextFile的替代方案,已经尝试调大客户端超时和Akka超时参数,但问题依然存在。
请问该如何处理才能让任务成功运行?是否还有其他可能的原因?
内容的提问来源于stack exchange,提问作者codeSeeker
相关产品推荐
相关产品推荐

