了解EMRFS一致视图如何跟踪 Amazon S3 中的对象 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

了解EMRFS一致视图如何跟踪 Amazon S3 中的对象

EMRFS通过将有关这些对象的信息添加到EMRFS元数据中,创建 Amazon S3 中对象的一致视图。EMRFS在以下情况下,将这些列表添加到其元数据中:

  • 在 Amazon EMR 工作EMRFS过程中写入的对象。

  • 使用将对象与元数据同步或导入到EMRFS元数据。EMRFS CLI

读取的EMRFS对象不会自动添加到元数据中。EMRFS删除对象时,列表仍保留在元数据中并处于已删除状态,直到使用清除该EMRFSCLI列表为止。要了解更多信息CLI,请参阅EMRFSCLI命令参考。有关清除EMRFS元数据中商品信息的更多信息,请参阅EMRFS一致的视图元数据

对于每个 Amazon S3 操作,都会EMRFS检查元数据,以获得有关一致视图中该组对象的信息。如果在其中一个操作中EMRFS发现 Amazon S3 不一致,它将根据emrfs-site配置属性中定义的参数重试该操作。在EMRFS用尽重试次数后,它要么抛出,要ConsistencyException么记录异常并继续工作流程。有关重试逻辑的更多信息,请参阅重试逻辑。您可以在日志中找到 ConsistencyExceptions,例如:

  • listStatus: 元数据项没有 Amazon S3 对象 /S3_bucket/dir/object

  • getFileStatus: 密钥存在dir/file于元数据中,但不存在于 Amazon S3 中

如果您直接从视图EMRFS一致跟踪的 Amazon S3 中删除对象,则EMRFS会将该对象视为不一致,因为它仍按照 Amazon S3 的形式列在元数据中。如果您的元数据与 Amazon S3 中的对象EMRFS轨迹不同步,则可以使用的sync子命令重置元数据,使其反映 Amazon S3。EMRFS CLI要了解元数据与 Amazon S3 之间的差异,请使用 diff。最后,EMRFS只有元数据中引用的对象具有一致的视图;同一 Amazon S3 路径中可能还有其他未被跟踪的对象。EMRFS列出 Amazon S3 路径中的对象时,它会返回元数据中正在跟踪的对象和该 Amazon S3 路径中的对象的超集。