Amazon EMR
管理指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

一致视图

EMRFS 一致视图是一项可选功能,它在使用 Amazon EMR 发布版 3.2.1 或更高版本时可用。一致视图允许 EMR 集群检查由 EMRFS 写入或与 EMRFS 同步的 Amazon S3 对象的列表和先写后读一致性。一致视图解决了可能因 Amazon S3 数据一致性模型产生的问题。例如,如果您通过一个操作向 Amazon S3 添加对象,然后通过一个后续操作立即列出这些对象,则该列表和处理的对象集可能不完整。对于使用 Amazon S3 作为数据存储来运行快速、顺序步骤的集群 (例如,多步骤提取-转换-加载 (ETL) 数据处理管道) 而言,这个问题更常见。

在创建支持一致视图的集群时,Amazon EMR 将使用 Amazon DynamoDB 数据库来存储对象元数据并跟踪与 Amazon S3 的一致性。如果一致视图确定 Amazon S3 在文件系统运行期间不一致,它会根据您可以定义的规则重新尝试该操作。默认情况下,DynamoDB 数据库具有 500 个读取容量单位和 100 个写入容量单位。您可以根据 EMRFS 跟踪的对象数和同时使用元数据的节点数来配置读取/写入容量设置。您也可以配置其他数据库和操作参数。除了 Amazon EMR 费用外,使用一致视图还将产生 DynamoDB 费用,这笔费用通常很少。有关更多信息,请参阅 Amazon DynamoDB 定价

启用一致视图后,EMRFS 会返回在 EMRFS 元数据存储中列出以及直接由 Amazon S3 针对给定路径返回的一组对象。因为 Amazon S3 仍是路径中对象的“可信来源”,所以 EMRFS 可确保指定 Amazon S3 路径中的所有内容都会进行处理 (无论是否在元数据中进行跟踪)。但是,EMRFS 一致视图仅确保对您跟踪的文件夹中的对象进行一致性检查。

您可以使用 EMRFS 实用工具 (emrfs) 通过主节点的命令行对一致视图所跟踪的 Amazon S3 对象执行操作。例如,您可以导入和删除 Amazon S3 对象以及将该对象与 EMRFS 元数据存储同步。有关 EMRFS CLI 实用工具的更多信息,请参阅 EMRFS CLI 参考

如果您从 Amazon S3 中直接删除 EMRFS 元数据中跟踪的对象,则 EMRFS 会将这些对象视为不一致,并在用尽重试次数之后引发异常。使用 EMRFS 可从 Amazon S3 中删除使用一致视图跟踪的对象。或者,您可以使用 emrfs 命令行来清除已直接删除的对象的元数据条目,也可以在删除对象后立即将一致视图与 Amazon S3 同步。