Flink Streaming AWS S3并行读取多个文件

时间:2017-07-18 11:09:51

标签: amazon-s3 apache-flink flink-streaming flink-cep

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

StreamExecutionEnvironment.getExecutionEnvironment().readFile(format, path)
对于给定的S3存储桶路径,

将并行读取文件。

我们在S3中存储日志文件。要求是提供多个客户端请求以使用时间戳从不同的文件夹中读取。

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

是否可以在单个Flink作业中实现此目的。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

可以找到有关S3文件系统支持的文档here

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

也可以使用(未​​经测试):

之类的东西来读取嵌套文件
TextInputFormat format = new TextInputFormat(path);
Configuration config = new Configuration();
config.setBoolean("recursive.file.enumeration", true);
format.configure(this.config);
env.readFile(format, path);