2

我是 Flink 新手,我的理解是遵循 API 调用

StreamExecutionEnvironment.getExecutionEnvironment().readFile(format, path)

将为给定的 S3 存储桶路径并行读取文件。

我们将日志文件存储在 S3 中。要求是为多个客户端请求提供服务,以从带有时间戳的不同文件夹中读取。

对于我的用例,为了服务多个客户端请求,我正在评估使用 Flink。所以我希望 Flink 为不同的 AWS S3 文件路径并行执行 AWS S3 读取。

是否有可能在单个 Flink Job 中实现这一点。有什么建议么?

4

1 回答 1

2

可以在此处找到有关 S3 文件系统支持的文档。

您可以从不同的目录读取并使用union() 运算符将​​来自不同目录的所有记录合并到一个流中。

也可以使用类似(未经测试)的东西来读取嵌套文件:

TextInputFormat format = new TextInputFormat(path);
Configuration config = new Configuration();
config.setBoolean("recursive.file.enumeration", true);
format.configure(this.config);
env.readFile(format, path);
于 2017-07-18T15:28:17.863 回答