我是Flink的新手,我的理解是遵循API调用
StreamExecutionEnvironment.getExecutionEnvironment().readFile(format, path)
对于给定的S3存储桶路径,将并行读取文件。
我们在S3中存储日志文件。要求是提供多个客户端请求以使用时间戳从不同的文件夹中读取。
对于我的用例,为了提供多个客户端请求,我正在评估使用Flink。所以我希望Flink为不同的AWS S3文件路径并行执行AWS S3读取。
是否可以在单个Flink作业中实现此目的。有什么建议吗?
答案 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);