Amazon EMR 使您能够按需快速轻松地预置容量,以及自动或手动添加和移除容量。在处理要求不确定或者不能预料的情况下,这将非常有用。 例如,如果您大多数的处理发生在夜间,那么,您白天可能需要 100 个实例,而夜间则可能需要 500 个实例。 另一种情况是,您可能在短期内需要巨大的容量。 借助 Amazon EMR,您可以快速预置数百或者数千个实例,自动扩展以满足计算要求,并在工作完成后随时关闭群集 (避免为空闲容量付费)。

开始使用 Amazon EMR

创建免费账户

需要帮助?询问我们!

elastic

对于添加或移除容量,有两个主要的选项:

部署多个集群:如果您需要增加容量,可以轻松地启动新的集群,并在不再需要时予以终止。集群的使用数量没有限制。 在拥有多个用户或者应用程序的情况下,需要使用多个集群。 例如,可以将您的输入数据存储在 Amazon S3 中,并为需要处理该数据的每个应用程序启动一个集群。 可以针对 CPU 优化一个集群,并针对存储优化另一个集群等等。

调整运行群集的大小:借助 Amazon EMR,您可以轻松自动扩展运行群集或手动调整其大小。您可能需要向外扩展群集以临时提升其处理能力,或者在群集中扩展以在具有空闲容量时节约成本。例如,一些客户在需要进行批处理时会向群集添加数百个实例,然后在完成处理后再移除这些额外实例。向群集添加实例时,只要预置的容量可用,EMR 现在便可对其加以利用。向内扩展时,EMR 将主动选择空闲节点以减少对正在运行的任务的影响。

Amazon EMR 旨在降低处理大量数据的成本。 其中一些功能有助于降低成本,包括较低的每秒单价、Amazon EC2 竞价型实例集成、Amazon EC2 预留实例集成、灵活性和 Amazon S3 集成。

较低的每秒单价:Amazon EMR 按每秒定价,同时设有一分钟最低费用。小型实例的每实例小时起价为 0.015 USD (每年 131.40 USD)。请参阅定价部分了解更多详情。

Amazon EC2 竞价集成:Amazon EC2 竞价型实例可让您给出自己的 Amazon EC2 容量价格。您只需指定愿意为运行某特定实例类型支付的最高小时单价。 只要您的出价超过竞价市场价格,您就可以继续使用该实例,而且一般情况下只需支付按需价格的几分之一。 现货价格会随着实例的供需而浮动,但您支付的价格不会超过您所指定的最高价格。 Amazon EMR 可让您轻松使用竞价型实例,所以可以同时节省您的时间和资金。 Amazon EMR 集群包括运行 HDFS 的“核心节点”和不运行 HDFS 的“任务节点”;任务节点非常适合竞价实例,因为竞价价格上涨的话,您就会失去这些实例,但不会丢失 HDFS 中存储的数据。 (了解更多关于核心节点和任务节点的信息。)

Amazon EC2 预留实例集成:利用 Amazon EC2 预留实例,您能够保持弹性计算的优势,同时降低成本并预留容量。利用预留实例,您只需支付很低的一次性费用,即可在该实例的每秒费用上获得大幅折扣。Amazon EMR 可让您轻松使用预留实例,因此可以节省多达 65% 的按需价格。

弹性:因为 Amazon EMR 便于自动扩展群集,所以您无需预置多余的容量。例如,您可能不知道集群未来 6 个月将处理的数据多少,或者您可能遇到了峰值处理需求。 借助于 Amazon EMR,您就无需揣测未来的需求,或者为峰值需求预配置容量,因为随时可以轻松地添加、移除容量。

Amazon S3 集成:借助 EMR 文件系统 (EMRFS), EMR 集群将 Amazon S3 高效安全地用作 Hadoop 的对象存储。您可以将数据存储在 Amazon S3 中并使用多个 Amazon EMR 集群处理同一个数据集。每个集群都可以针对特定的工作负荷进行优化,这要比单个集群为多个要求不同的工作负荷提供服务要高效的多。 例如,您可以针对 I/O 优化一个集群,并针对 CPU 优化另一个集群,每个集群都处理 Amazon S3 中同样的数据集。 另外,将输入与输出数据存储在 Amazon S3 中,您还可以在不再需要的时候关闭群集。

EMRFS 在 Amazon S3 读写方面拥有极高性能,支持使用 AWS Key Management Service (KMS) 或客户管理的密钥进行 S3 服务器端或 S3 客户端加密,同时提供可选的一致性视图,用于检查元数据中所追踪对象的列表和写后读一致性。此外,Amazon EMR 群集可支持使用 EMRFS 和 HDFS,因此,您不必在群集上的存储和 Amazon S3 之间作选择。

AWS Glue 数据目录集成:您可以将 AWS Glue 数据目录作为托管元数据存储库使用,以存储 Apache Spark 和 Apache Hive 的外部表元数据。此外,它还可提供自动架构发现和架构版本历史记录,让您可以轻松地在群集外的 Amazon S3 上保留外部表的元数据。

借助于 Amazon EMR,您可以利用多种数据存储,包括 Amazon S3、Hadoop 分布式文件系统 (HDFS) 和 Amazon DynamoDB。

DetailsPage_EMR-Diagram

Amazon S3Amazon S3 是具有高度持久性、可扩展性、安全性、快速且物美价廉的存储服务。借助 EMR 文件系统 (EMRFS),Amazon EMR 可以将 Amazon S3 安全高效地用作 Hadoop 的对象存储。Amazon EMR 对 Hadoop 进行了大量的改进,因此您可以无缝地处理 Amazon S3 中存储的大量数据。而且 EMRFS 还可以提供一致的视图,用于检查 Amazon S3 中对象的列表和写后读一致性。EMRFS 支持 S3 服务器端或 S3 客户端加密,以处理加密的 Amazon S3 对象,您可以使用 AWS Key Management Service (KMS) 或自定义的密钥供应商。

在启动集群时,Amazon EMR 会从 Amazon S3 向集群中的每个实例流式传输各种数据,并立即进行处理。 将数据存储在 Amazon S3 中并使用 Amazon EMR 进行处理的一个优点是:您可以使用多个集群处理相同的数据。 例如,您可能有一个针对内存进行优化的 Hive 开发集群和一个针对 CPU 进行优化的 Pig 生产集群,两个集群都使用同一个输入数据集。

Hadoop 分布式文件系统 (HDFS)HDFS 是一种 Hadoop 文件系统。Amazon EMR 的当前拓扑将其实例分为以下 3 个逻辑实例组:主组,可运行 YARN 资源管理器和 HDFS 名称节点服务;核心组,可运行 HDFS DataNode Daemon 和 YARN 节点管理器服务;以及任务组,可运行 YARN 节点管理器服务。Amazon EMR 将 HDFS 安装在与核心组中的实例相关联的存储上。

每个 EC2 实例都附带固定的存储量(称为“实例存储”)。您还可以向实例添加 Amazon EBS 卷,以在实例上自定义存储。Amazon EMR 允许您添加通用型 (SSD)、预置 (SSD) 和磁性卷类型。添加到 EMR 集群的 EBS 卷在集群关闭后不会保留数据。您终止集群后,EMR 将自动清除卷。

您也可以使用 Amazon EMR 安全配置启用完整的 HDFS 加密,或者使用 Hadoop 密钥管理服务器手动创建 HDFS 加密区

Amazon DynamoDBAmazon DynamoDB 是一种完全受管的快速 NoSQL 数据库服务。Amazon EMR 与 Amazon DynamoDB 直接集成,因此您可以迅速而高效地处理 Amazon DynamoDB 中存储的数据,并在 Amazon EMR 中的 Amazon DynamoDB、Amazon S3 和 HDFS 间传输数据。

其他 AWS 数据存储:Amazon EMR 客户还可以使用 Amazon Relational Database Service(一种可在中轻松地设置、操作和扩展关系数据库的 Web 服务)、Amazon Glacier(一种成本极低的存储服务,为数据存档和备份提供安全和持久的存储)以及 Amazon Redshift(一种快速的、完全受管理的 PT 级数据仓库服务)。AWS Data Pipeline 是一种 Web 服务,帮助客户可靠地处理数据并以规定的时间间隔在不同 AWS 计算与存储服务(包括 Amazon EMR)以及本地数据源之间移动数据。

Amazon EMR 支持各种强大的、经过验证的 Hadoop 工具,如 Hive、Pig、HBase 和 Impala。除此之外,它还可以使用启动引导操作来运行 Hadoop MapReduce 之外的分布式计算框架,如 Spark 或 Presto。您还可以将 Hue 和 Zeppelin 用作 GUI,与您集群中的应用程序交互。

Hive 是在 Hadoop 顶部运行的一种开源数据仓库和分析软件包。 Hive 由基于 SQL 的语言 Hive QL 操作,允许用户构建、汇总和查询数据。 Hive QL 的功能超出标准 SQL,支持一流的 map/reduce 函数和 Json 与 Thrift 等复杂的由用户定义的可扩展数据类型。 该功能能够处理复杂的非结构化的数据源,如文本文档和日志文件。 Hive 支持通过 Java 中编写的用户定义函数使用用户扩展名。 Amazon EMR 对 Hive 进行了无数的改进,包括直接集成 Amazon DynamoDB 和 Amazon S3。 例如,您可以使用 Amazon EMR 自动地从 Amazon S3 载入表分区,并向 Amazon S3 中的表写入数据,而无需使用临时文件;您也可以访问 Amazon S3 中的资源,如适用于自定义 map/reduce 操作和其他库的脚本。 了解有关 Hive 和 EMR 的更多信息

Pig 是在 Hadoop 顶部运行的一种开源分析软件包。Pig 由类似 SQL 的语言 Pig Latin 操作,允许用户构建、汇总和查询数据。 与 SQL 操作类似,Pig Latin 也支持一流的 map/reduce 函数及复杂的由用户定义的可扩展数据类型。该功能能够处理复杂的非结构化的数据源,如文本文档和日志文件。 Pig 支持通过 Java 中编写的用户定义函数使用用户扩展名。Amazon EMR 对 Pig 进行了无数的改进,包括使用多文件系统(通常 Pig 只能访问一个远程文件系统)的功能、从 Amazon S3 载入客户 JAR 和脚本的功能(例如,“REGISTER S3:///my-bucket/piggybank.jar”)以及用于处理字符串和日期/时间的功能。 了解有关 Pig 和 EMR 的更多信息

HBase 是一种仿效 Google BigTable 的开源、非关系型分布式数据库。它是 Apache 软件基金会 Hadoop 项目的一部分,基于 Hadoop 分布式文件系统 (HDFS) 运行,为 Hadoop 提供与 BigTable 相似的功能。 HBase 为您提供了一种采用列式压缩和存储方式,可存储大量稀疏数据的高效容错方法。此外,HBase 会将数据缓存到内存中,因此可提供数据的快速查询。在连续写入操作方面对 HBase 进行了优化,批量插入、更新和删除等操作的效率很高。 HBase 可与 Hadoop 无缝配合,从而共享其文件系统并用作 Hadoop 作业的直接输入和输出端。HBase 还可与 Apache Hive 集成(对 HBase 表启用类似 SQL 的查询)、与基于 Hive 的表结合以及支持 Java 数据库连接 (JDBC)。借助 Amazon EMR,您可以使用 Amazon S3 作为 Apache HBase 的数据存储,从而缩减成本并降低操作复杂性。如果您使用 HDFS 作为数据存储,则可以将 HBase 备份至 Amazon S3,或者从以前创建的备份恢复 HBase。了解关于 HBase 和 EMR 的更多信息

Phoenix 具备 ACID 事务处理功能,可以实现对存储在 Apache HBase 中的数据的低延迟 SQL。您可以轻松创建二级索引以获取更多性能,并针对同一底层 HBase 表创建不同的视图。了解关于 Amazon EMR 上的 Phoenix 的更多信息

Impala 是 Hadoop 生态系统的开源工具,方便使用 SQL 语法进行交互式随机查询。它不使用 MapReduce,而是利用与传统关系数据库管理系统 (RDBMS) 中的引擎类似的大规模并行处理 (MPP) 引擎。了解有关 Impala 和 Amazon EMR 的更多信息

HUE 是面向 Hadoop 的开源用户界面,可以让您更轻松地运行和开发 Hive 查询、管理 HDFS 中的文件、运行和开发 Pig 脚本以及管理表。Amazon EMR 中的 HUE 还与 Amazon S3 进行了集成,因此您可以直接对 Amazon S3 进行查询,并在 HDFS 和 Amazon S3 之间轻松地传输文件。了解有关 HUE 和 EMR 的更多信息

Spark 是 Hadoop 生态系统中的引擎,可以快速处理大量数据集,使用内存内容错恢复分布式数据集 (RDD) 和有向无环图 (DAG) 来定义数据转换。Spark 还包括 Spark SQL、Spark Streaming、MLlib 和 GraphX。了解 Amazon EMR 上的 Spark 的更多信息

Presto 是一种开源分布式 SQL 查询引擎,专为低延迟、临时的数据分析进行优化。它支持 ANSI SQL 标准,包括复杂的查询、聚合、结合和窗口功能。Presto 可处理来自多个数据源(包括 Hadoop 分布式文件系统 (HDFS) 和 Amazon S3)的数据。了解 Amazon EMR 上的 Spark 的更多信息

Zeppelin 是一种开源 GUI,可创建交互式和协作式笔记本,以进行使用 Spark 的数据浏览。您可以使用 Scala、Python、SQL(使用 Spark SQL)或 HiveQL 操作数据并快速可视化结果。Zeppelin 笔记本可在多名用户间共享,并可将可视化表示发布到外部控制面板。了解 Amazon EMR 上的 Spark 的更多信息

Oozie 是一种适用于 Hadoop 的工作流程计划程序,您可在其中创建操作的有向无环图 (DAG)。此外,您还可以按操作或时间轻松触发 Hadoop 工作流程。了解 Amazon EMR 上的 Spark 的更多信息

Tez 是 Hadoop YARN 上的一种执行框架,可以通过优化型查询计划和增强型资源管理来实现高速性能。您可以将 Tez 与 Apache Hive 和 Apache Pig(而非 Hadoop MapReduce)结合使用,并使用 Tez UI 实现执行计划的可视化。了解关于 Amazon EMR 上的 Tez 的更多信息

Flink 是一种流式处理数据流引擎,可让您轻松对高吞吐量数据源运行实时流处理。该引擎还支持无序事件的事件时间语义、只执行一次语义、回压控制及针对写入流式处理和批处理应用程序优化过的 API。了解有关 EMR 上的 Flink 的更多信息

其他:Amazon EMR 还支持各种其他常见的应用程序和工具,如 R、Apache MXNet (深度学习)、Mahout (机器学习)、Ganglia (监控)、Accumulo (安全 NoSQL 数据库)、Sqoop (关系数据库连接器)、HCatalog (表和存储管理) 等。Amazon EMR 团队负责维护引导操作的开源存储库,该存储库可以用于安装其他软件,配置集群,或者作为示例向您自己的引导操作提供服务。

调整集群:您可以根据应用程序的要求,选择要在集群中预配置的 EC2 实例类型(标准型、CPU 增强型、内存增强型、高 I/O 等等)。 您拥有每个实例的根访问权限,可完全自定义集群,以适合您的要求。 了解关于 EC2 实例类型支持的更多信息

调试应用程序:在群集上启用调试时,Amazon EMR 会将日志文件存档到 Amazon S3,然后制作这些文件的索引。随后,您可以使用控制台中的图形界面直观地浏览日志并查看任务历史记录。了解更多关于调试 EMR 任务的信息

监控您的集群:您可以使用 Amazon CloudWatch 监控 23 个自定义的 Amazon EMR 指标,如制作运行的 map 和 reduce 任务的平均数量。您还可以在这些指标上设置警报。 了解更多关于监控 EMR 集群的信息

响应事件:您可以使用 Amazon CloudWatch Events 中的 Amazon EMR 事件类型来响应 Amazon EMR 集群中的状态更改。通过使用可以快速设置的简单规则,您可以匹配各种事件并将其发送到 Amazon SNS 主题、AWS Lambda 函数和 Amazon SQS 队列等不同目标位置。了解关于 Amazon EMR 集群中的事件的更多信息

计划重复发生的工作流程:您可以使用 AWS Data Pipeline 计划各种重复发生的、涉及 Amazon EMR 的工作流程。AWS Data Pipeline 是一种 Web 服务,帮助您可靠地处理数据并以指定的间隔在不同 AWS 计算与存储服务以及内部数据源之间移动数据。了解更多有关 EMR 和 Data Pipeline 的信息

Cascading:Cascading 是一种开源 Java 库,会提供用于创建和运行 Hadoop MapReduce 应用程序的查询 API、查询规划器和作业计划。与其他本机 Hadoop 应用程序类似,使用 Cascading 开发的应用程序会编译且打包成标准 Hadoop JAR 文件。详细了解 Cascading 和 EMR

深度学习:使用 Apache MXNet 等常见的深度学习框架来定义、训练和部署深度神经网络。您可以在具有 GPU 实例的 Amazon EMR 群集上使用这些框架。详细了解 Amazon EMR 上的 MXNet

控制集群的网络访问:您可以在 Amazon Virtual Private Cloud (VPC) 中启动集群,这是一种逻辑上隔离的 AWS 云部分。您可以完全掌控您的虚拟联网环境,包括选择自有的 IP 地址范围、创建子网,以及配置路由表和网关。了解更多有关 EMR 和 Amazon VPC 的更多信息

管理用户、权限和加密:您可以使用 AWS Identity and Access Management (IAM) 工具(如“IAM 用户和角色”)控制访问和权限。例如,您可以为某些用户提供集群的读取权限,但不提供写入权限。另外,您还可以使用 Amazon EMR 安全配置设置各种静态加密和正在传输的加密选项,其中包括 Amazon S3 加密支持和 Kerberos 身份验证详细了解对群集的访问控制Amazon EMR 加密选项

安装其他软件:您可以使用引导操作或运行 Amazon Linux 的 Amazon 系统映像 (AMI) 在您的群集上安装其他软件。引导操作指的是 Amazon EMR 启动集群时在集群节点上运行的脚本。 它们会在 Hadoop 启动和节点开始处理数据前运行。此外,您还可以预加载和使用自定义 Amazon Linux AMI 上的软件。详细了解 Amazon EMR 引导操作自定义 Amazon Linux AMI

高效复制数据:您可以迅速地将大量数据从 Amazon S3 移到 HDFS,从 HDFS 移到 Amazon S3,并使用 Amazon EMR 的 S3DistCp 在 Amazon S3 存储段之间进行移动。S3DistCp 是开放源工具 Distcp 的扩展应用,它可使用 MapReduce 高效移动大量数据。了解有关 S3DistCp 的更多信息

Hadoop 流式处理:Hadoop 流式处理是 Hadoop 附带的一种实用工具,可让您以非 Java 语言开发 MapReduce 可执行文件。流式处理的实施是以 JAR 文件形式进行的。 了解有关 EMR 上的 Hadoop 流式处理的更多信息

自定义 Jar:写入 Java 程序、针对您希望使用的 Hadoop 版本进行编译并上载到 Amazon S3。然后,您就可以使用 Hadoop JobClient 界面将 Hadoop 任务提交到集群。 了解更多关于使用 EMR 自定义 Jar 处理的信息

EMR 可与各式各样的第三方软件工具一起使用,例如:

数据传输

监控

性能优化

图形 IDE

Hadoop 分配

BI/可视化

商业智能

数据探查

BI/可视化

图形 IDE

BI/可视化