选择您的 Cookie 首选项

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

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

使用 Amazon EMR 处理存储和文件系统

聚焦模式
使用 Amazon EMR 处理存储和文件系统 - Amazon EMR

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

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

Amazon EMR 和 Hadoop 提供了各种文件系统,供您在处理集群步骤时使用。通过用于访问数据的 URI 前缀,您可以指定要使用的文件系统类型。例如,s3://amzn-s3-demo-bucket1/path 会引用使用 EMRFS 的 Amazon S3 存储桶。下表列出了可用的文件系统以及关于最适合用途的建议。

Amazon EMR 和 Hadoop 处理集群时通常会使用两个或多个以下文件系统。HDFS 和 EMRFS 是与 Amazon EMR 配合使用的两种主要文件系统。

重要

从亚马逊 EMR 版本 5.22.0 开始,亚马逊 EMR 仅 AWS 使用签名版本 4 来验证向亚马逊 S3 发出的请求。早期的 Amazon EMR 版本在某些情况下使用 AWS 签名版本 2,除非发行说明中注明仅使用签名版本 4。有关更多信息,请参阅《亚马逊简单存储服务开发者AWS 指南》中的对请求进行身份验证(AWS 签名版本 4)和对请求进行身份验证(签名版本 2)

文件系统 Prefix 描述
HDFS hdfs:// (或无前缀)

HDFS 是适用于 Hadoop 的一种可扩展的分布式便携文件系统。HDFS 的一项优势是管理集群的 Hadoop 集群节点与管理单一步骤的 Hadoop 集群节点之间的数据感知。有关更多信息,请参阅 Hadoop 文档

通过主节点和核心节点使用 HDFS。优势是快;劣势是它是短暂存储,会在集群终止时回收。它最适合用于缓存由中间任务流程步骤产生的结果。

EMRFS s3://

EMRFS 是 Hadoop 文件系统的一种实现方式,用于从 Amazon EMR 读取常规文件并将其直接写入到 Amazon S3。EMRFS 提供了将永久数据存储在 Amazon S3 中以便与 Hadoop 配合使用的便利,同时还提供 Amazon S3 服务器端加密、read-after-write 一致性和列表一致性等功能。

注意

之前,Amazon EMR 使用 s3ns3a 文件系统。尽管这两种文件系统仍然有效,不过我们建议您使用 s3 URI 方案以获得最佳性能、安全性和可靠性。

本地文件系统

本地文件系统指的是本地连接的磁盘。创建 Hadoop 集群时,每个节点都是从一个 EC2 实例创建的,该实例带有预先配置的预连接磁盘存储块,称为实例存储。实例存储卷上的数据仅在其 EC2 实例生命周期内保留。实例存储卷适合于存储不断变化的临时数据(如缓冲区、缓存、Scratch 数据和其他临时内容)。有关更多信息,请参阅 Amazon EC2 实例存储

HDFS 使用本地文件系统,但 Python 也从本地文件系统运行,您可以选择在实例存储卷上存储其他应用程序文件。

(早期)Amazon S3 数据块文件系统 s3bfs://

Amazon S3 数据块文件系统是一种早期文件存储系统。我们强烈反对使用此系统。

重要

我们不推荐使用此文件系统,因为它可能触发竞争条件,此条件可能会导致集群故障。但是,早期应用程序可能会需要它。

访问文件系统

通过用于访问数据的统一资源标识符 (URI) 前缀,您可以指定要使用的文件系统。以下步骤介绍了如何引用几种不同类型的文件系统。

访问本地 HDFS
  • 在 URI 中指定 hdfs:/// 前缀。Amazon EMR 会将未在 URI 中指定前缀的路径解析为本地 HDFS。例如,以下两项都 URIs 将解析到 HDFS 中的相同位置。

    hdfs:///path-to-data /path-to-data
访问远程 HDFS
  • 将主节点 IP 地址包含在 URI 内,如以下示例所示。

    hdfs://master-ip-address/path-to-data master-ip-address/path-to-data
访问 Amazon S3
  • 使用 s3:// 前缀。

    s3://bucket-name/path-to-file-in-bucket
访问 Amazon S3 数据块文件系统
  • 仅用于需要 Amazon S3 数据块文件系统的旧版应用程序。要使用此文件系统访问或存储数据,请在 URI 中使用 s3bfs:// 前缀。

    Amazon S3 数据块文件系统是一种旧版文件系统,用于支持向 Amazon S3 上载大于 5GB 的文件。借助 Amazon EMR 通过 AWS Java SDK 提供的分段上传功能,您可以将大小不超过 5 TB 的文件上传到 Amazon S3 原生文件系统,Amazon S3 块文件系统已被弃用。

    警告

    因为此早期文件系统可能创建会导致文件系统损坏的竞争条件,所以您应当避免使用此形式,而改用 EMRFS。

    s3bfs://bucket-name/path-to-file-in-bucket

本页内容

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