选择您的 Cookie 首选项

我们使用必要 Cookie 和类似工具提供我们的网站和服务。我们使用性能 Cookie 收集匿名统计数据,以便我们可以了解客户如何使用我们的网站并进行改进。必要 Cookie 无法停用,但您可以单击“自定义”或“拒绝”来拒绝性能 Cookie。

如果您同意,AWS 和经批准的第三方还将使用 Cookie 提供有用的网站功能、记住您的首选项并显示相关内容,包括相关广告。要接受或拒绝所有非必要 Cookie,请单击“接受”或“拒绝”。要做出更详细的选择,请单击“自定义”。

EMR 文件系统 (EMRFS)

聚焦模式
EMR 文件系统 (EMRFS) - Amazon EMR

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

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

EMR 文件系统(EMRFS)是 HDFS 的实现,所有 Amazon EMR 集群将其用于直接从 Amazon EMR 读取常规文件并将其写入 Amazon S3。EMRFS 使您能够方便地将持久性数据存储在 Amazon S3 中以便用于 Hadoop,同时它还提供了数据加密等功能。

数据加密可让您对由 EMRFS 写入 Amazon S3 的对象进行加密,并且还允许 EMRFS 处理 Amazon S3 中的加密对象。如果您使用的是 Amazon EMR 发行版 4.8.0 或更高版本,则可使用安全配置设置 Amazon S3 中 EMRFS 对象的加密以及其他加密设置。有关更多信息,请参阅加密选项。如果您使用的是 Amazon EMR 的早期发行版,则可以手动配置加密设置。有关更多信息,请参阅 使用 EMRFS 属性指定 Amazon S3 加密

Amazon S3 在 AWS 区域为所有 GET、PUT 和 LIST 操作提供了强大的读写后编写一致性。这意味着您使用 EMRFS 编写的内容就是从 Amazon S3 中读取的内容,对性能没有影响。有关更多信息,请参阅 Amazon S3 数据一致性模型

在使用 Amazon EMR 发行版 5.10.0 或更高版本时,可以根据集群用户、组或 EMRFS 数据在 Amazon S3 中的位置,使用不同的 IAM 角色来处理 EMRFS 对 Amazon S3 的请求。有关更多信息,请参阅为处理 EMRFS 对 Amazon S3 的请求配置 IAM 角色

警告

在为运行 Apache Spark 任务的 Amazon EMR 集群启用推测执行之前,请查看以下信息。

EMRFS 包括 EMRFS S3 优化的提交器,该 OutputCommitter 实现针对使用 EMRFS 时将文件写入 Amazon S3 进行了优化。如果您对将数据写入 Amazon S3 的应用程序启用 Apache Spark 推测执行功能,并且不使用经 EMRFS S3 优化的提交程序,则可能会遇到 SPARK-10063 中描述的数据正确性问题。如果您使用的是低于 Amazon EMR 5.19 版本的 Amazon EMR 版本,或者正在使用 ORC 和 CSV 等格式将文件写入 Amazon S3,则会发生该情况。EMRFS S3 优化的提交者不支持这些格式。有关使用经 EMRFS S3 优化的提交程序的完整要求列表,请参阅经 EMRFS S3 优化的提交程序的要求

当经 EMRFS S3 优化的提交程序不受支持时(例如在写入以下内容时),通常使用 EMRFS 直接写入:

  • Parquet 以外的输出格式(例如 ORC 或文本)。

  • 使用 Spark RDD API 的 Hadoop 文件。

  • 使用 Hive SerDe 的实木复合地板。请参阅 Hive 元存储 Parquet 表转换

以下情形不使用 EMRFS 直接写入

  • 启用经 EMRFS S3 优化的提交程序时 请查看经 EMRFS S3 优化的提交程序的要求

  • 在 partitionOverwriteMode 设置为动态的情况下写入动态分区时。

  • 写入自定义分区位置(例如不符合 Hive 默认分区位置约定的位置)时。

  • 使用 EMRFS 以外的文件系统(例如写入 HDFS 或使用 S3A 文件系统)时。

要确定您的应用程序是否在 Amazon EMR 5.14.0 或更高版本中使用了直接写入,请启用 Spark INFO 日志记录。如果 Spark 驱动程序日志或 Spark 执行程序容器日志中,存在包含文本“Direct Write: ENABLED”的日志行,则 Spark 应用程序会使用直接写入的方式进行写入。

默认情况下,Amaz OFF EMRclusters on 开启了推测执行功能。如果以下两个条件都为真,我们强烈建议您不要启用推测执行:

  • 您正将数据写入 Amazon S3。

  • 数据以 Apache Parque 以外的格式写入,或者以 Apache Parquet 格式写入但不使用经 EMRFS S3 优化的提交程序。

如果您启用 Spark 推测执行并使用 EMRFS 直接写入,将数据写入 Amazon S3,您可能会遇到间歇性数据丢失问题。将数据写入 HDFS,或使用经 EMRFS S3 优化的提交程序以 Parquet 格式写入数据时,Amazon EMR 不使用直接写入,也不会发生此问题。

如果您需要以使用 EMRFS 直接写入的格式从 Spark 将数据写入 Amazon S3,并使用推测执行,我们建议您写入 HDFS,然后使用 S3DistCP 将输出文件传输到 Amazon S3。

隐私网站条款Cookie 首选项
© 2025, Amazon Web Services, Inc. 或其附属公司。保留所有权利。