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

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

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

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

Amazon EMR 和 Hadoop 处理集群时通常会使用两个或多个以下文件系统。HDFS 和 S3A 是 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。优势是快;劣势是它是短暂存储,会在集群终止时回收。它最适合用于缓存由中间任务流程步骤产生的结果。

S3A s3://, s3a://, s3n://

Hadoop S3A 文件系统是一个开源 S3 连接器,它使 Apache Hadoop 及其生态系统能够直接与亚马逊 S3 存储进行交互。它允许用户使用与 Hadoop 兼容的文件操作在 S3 存储桶中读取和写入数据,从而在 Hadoop 应用程序和云存储之间实现了无缝集成。

注意

在 EMR-7.10.0 之前,亚马逊 EMR 将 EMRFS 用于 s 3://和 s3n://方案

本地文件系统

本地文件系统指的是本地连接的磁盘。创建 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 块文件系统是一种传统文件系统,用于支持上传大于 5 GB 的 Amazon S3。借助 Amazon EMR 通过 AWS Java SDK 提供的分段上传功能,您可以将大型文件上传到 Amazon S3 原生文件系统,Amazon S3 块文件系统已被弃用。有关 EMR 分段上传的更多信息,请参阅为 Amazon S3 配置分段上传有关 S3 对象大小和部分大小限制的更多信息,请参阅《亚马逊简单存储服务用户指南》中的 Amazon S3 分段上传限制

    警告

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

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