我们使用AWS S3来存储flink保存点。理想情况下,flink 将主要使用 GetObject 和 PutObject 操作,但在我们的例子中,ListBucket 是 flink 关联的 S3 存储桶最常调用的 API。想知道为什么 flink 使用 ListBucket API 以及有什么方法可以减少这些调用?
期望减少这些调用,从而减少与 S3 中这些调用相关的 AWS 成本。
Flink 使用文件系统抽象作为其检查点和保存点。对于 S3,该接口有两种不同的实现,一种来自 Hadoop,另一种来自 Presto。
Hadoop S3 文件系统模仿 S3 之上的文件系统:
Presto S3 并没有试图发挥这种魔力; 它只是执行 PUT/GET 操作。这就是为什么 Presto S3 实现是推荐用于 S3 检查点的文件系统的原因。有关更多信息,请参阅 https://nightlies.apache.org/flink/flink-docs-stable/docs/deployment/filesystems/s3/#hadooppresto-s3-file-systems-plugins。