【问题标题】:How to have EMRFS consistent view on S3 buckets with retention policy?如何使用保留策略在 S3 存储桶上获得 EMRFS 一致视图?
【发布时间】:2020-11-10 16:15:40
【问题描述】:

我正在使用 AWS EMR 计算集群(版本 5.27.0),它使用 S3 进行数据持久性。 该集群对 S3 进行读写操作。

S3存在eventual consistency的问题,导致写入数据后无法立即列出。因此,我使用 EMRFS 和 DynamoDB 来存储新写入的路径以便立即列出。

现在的问题是我必须在 S3 上设置保留策略,因为超过一个月的数据将从 S3 中删除。但是,这样做不会从 EMRFS DynamoDB 表中删除数据,从而导致一致性问题。

我的问题是,如何确保在 S3 中设置保留策略时,从 DynamoDB 表中删除相同的路径?

我想出的一个简单的解决方案是定义一个 Lambda,它会定期触发,并在 DynamoDB 记录上手动设置 1 天的 TTL。还有比这更好的方法吗?

【问题讨论】:

    标签: amazon-s3 amazon-dynamodb amazon-emr


    【解决方案1】:

    您可以使用与 S3 对象相同的过期策略配置 DynamoDB

    https://aws.amazon.com/blogs/aws/new-manage-dynamodb-items-using-time-to-live-ttl/

    在这种情况下,您确保 DynamoDB 和 S3 具有相同的现有对象

    【讨论】:

    • 这种方法的问题在于 DynamoDB 表是由 EMRFS 创建的。不是由用户。而且表可能会被删除。
    • EMR DynamoDB也可以配置TTL,请查看删除TTL属性:d1.awsstatic.com/whitepapers/…
    • "此支持仅适用于从元数据中删除的对象。要为每个标记为删除的元数据对象启用 TTL,请应用以下 emrfs-site.xmlproperties 并执行配置步骤以启用 TTL 支持。”我确实尝试过,它只能用于被 EMRFS 标记为已删除的对象。在我的情况下,由于 s3 保留政策,这些对象将被删除。
    猜你喜欢
    • 2013-12-21
    • 2019-02-26
    • 2023-03-31
    • 2011-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-26
    • 2021-03-29
    相关资源
    最近更新 更多