弹性

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

elastic

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

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

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

成本低廉

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

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

Amazon EC2 Spot 集成:Amazon EC2 Spot 实例可让您给出自己的 Amazon EC2 容量价格。您只需指定愿意为运行某特定实例类型支付的最高小时单价。只要您的出价超过 Spot 市场价格,您就可以继续使用该实例,而且一般情况下只需支付按需价格的几分之一。Spot 价格会随着实例的供需而浮动,但您支付的价格不会超过您所指定的最高价格。Amazon EMR 可让您轻松使用 Spot 实例,所以可以同时节省您的时间和资金。Amazon EMR 集群包括运行 HDFS 的“核心节点”和不运行 HDFS 的“任务节点”;任务节点非常适合 Spot 实例,因为 Spot 价格上涨的话,您就会失去这些实例,但不会丢失 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 DynamoDB:Amazon 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 上受版本控制的发布策略,您可以在 EMR 集群中轻松选择和使用最新的开源项目,包括 Apache Spark 和 Hadoop 生态系统中的应用程序。软件由 Amazon EMR 进行安装和配置,使您能够投入更多时间来提高数据价值,而不用操心基础设施和管理任务。

emr-5.16.0

Hadoop 工具

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

hadoop-apps

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

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 和 Amazon 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 和 Amazon EMR 的更多信息

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

Presto 是一种开源的分布式 SQL 查询引擎,针对低延迟的临时数据分析进行了优化。它支持 ANSI SQL 标准,包括复杂查询、聚合、连接和窗口函数。Presto 可处理来自多个数据源(包括 Hadoop 分布式文件系统 [HDFS] 和 Amazon S3)的数据。了解什么是 Presto,并详细了解 Amazon EMR 上的 Presto

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

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

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,然后制作这些文件的索引。随后,您可以使用控制台中的图形界面直观地浏览日志并查看任务历史记录。了解有关调试 Amazon EMR 任务的更多信息

监控您的集群:您可以使用 Amazon CloudWatch 监控 23 个自定义的 Amazon EMR 指标,如制作运行的 map 和 reduce 任务的平均数量。您还可以在这些指标上设置警报。了解有关监控 Amazon 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 计算与存储服务以及内部数据源之间移动数据。了解有关 Amazon EMR 和 Data Pipeline 的更多信息

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

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

控制集群的网络访问:您可以在 Amazon Virtual Private Cloud (VPC) 中启动集群,这是一种逻辑上隔离的 AWS 云部分。您可以完全掌控您的虚拟联网环境,包括选择自己的 IP 地址范围、创建子网以及配置路由表和网络网关。了解有关 Amazon 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 任务提交到集群。了解有关使用 Amazon EMR 自定义 Jar 处理的更多信息

第三方工具

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

数据传输
监控
性能优化
图形 IDE
Hadoop 分配
BI/可视化
商业智能
数据探查
Tableau_logo
BI/可视化
logo-talend-400
图形 IDE
200x100_Jaspersoft_Logo
BI/可视化

了解有关 Amazon EMR 定价的更多信息

访问定价页面
准备好开始构建了吗?
开始使用 Amazon EMR
还有更多问题?
联系我们