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

使用存储和文件系统

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

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

文件系统 前缀 说明
HDFS hdfs:// (或无前缀)

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

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

EMRFS s3://

EMRFS 是 Hadoop 文件系统的一种实现方式,用于将常规文件从 Amazon EMR 直接读取和写入到 Amazon S3。通过 EMRFS 可以方便地将持久性数据存储在 Amazon S3 中以便用于 Hadoop,同时它还提供诸如 Amazon S3 服务器端加密、先写后读一致性和列表一致性等功能。

注意

Amazon EMR 以前将 本机文件系统与 URI 方案 s3ns3 结合使用。尽管这仍然有效,不过我们建议您使用 s3 URI 方案以获得最佳性能、安全性和可靠性。

本地文件系统

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

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

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

重要

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

注意

不支持 s3a 协议。我们建议您使用 s3 代替 s3a

访问文件系统

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

访问本地 HDFS

  • 在 URI 中指定 hdfs:/// 前缀。Amazon EMR 可解析未指定通向本地 HDFS 的 URI 前缀的路径。例如,以下两个 URI 都会解析至 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 上传大于 5 GB 的文件。借助 Amazon EMR 通过 AWS Java 开发工具包提供的分段上传功能,您可以上传最大为 5 TB 的文件到 Amazon S3 本机文件系统,而 Amazon S3 数据块文件系统已被弃用。

    警告

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

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

本页内容: