Amazon Elastic MapReduce介绍

Amazon Elastic MapReduce 是一项托管服务,旨在通过使用短期运行且每秒成本较高的作业来处理和分析大量数据,或者用于长时间运行的工作负载,从而允许您在架构中构建高可用性。

EMR 基于流行且可靠的 Apache Hadoop 框架,这是一个用于大数据处理的开源分布式处理框架。 组织和公司可以通过使用 Amazon EMR 获得巨大的好处,因为它抽象并降低了传统 MapReduce 框架所使用的基础设施层的复杂性。

实施健康的 Hadoop 集群设置所涉及的工作并不是那么微不足道。 因此,亚马逊云所做的就是将 Hadoop 框架的所有基础设施封装到一个集成环境中,这样您就可以在几分钟内启动集群,并专注于真正重要的部分,这不是管理基础设施,而是根据您的需求处理数据。

Amazon EMR 安全可靠地处理您的数据分析用例,包括日志分析、Web 索引、数据仓库、机器学习、财务分析、科学模拟和生物信息学。 Amazon EMR 利用配置有 Hadoop 框架的 Amazon EC2 实例来提供 PB 级处理能力。

Amazon EMR 支持大数据和数据分析领域使用的许多其他框架,包括 Spark、Presto 和 HBase。 使用 亚马逊云管理控制台或 Amazon CLI,您可以快速轻松地为每个框架创建集群。

使用EMR可以在几分钟(而不是几小时或几天)内完成分析,从而节省时间和金钱。 如果您过去有创建手动 Hadoop 集群设置的经验,那么您就会知道,这在工作量和配置您自己的硬件方面可以节省大量时间。

但是,对于 EMR,成本模型基于即用即付的基础,这意味着您只需在集群运行时为预配置的资源付费。 您可以选择不同的 EC2 实例类型和大小以获得不同的性能。 如果您需要短时间内强大的处理能力,您可以运行 100 个节点 1 小时,而不是运行 10 个节点 10 小时,并且您支付相同的价格。 您还可以利用 EC2 定价模型,例如 Spot 实例和 EC2 预留实例。

弹性是云的另一个固有特征,因为可以根据需求随时增加或缩减资源。 您可以动态添加或删除节点。 例如,如果在创建集群期间您低估了所需的资源,则可以向其中添加更多核心或任务节点。

安全性是亚马逊云及其所有服务的一个重要因素,对于 EMR 来说也不例外。 您的实例由 EC2 安全组保护,并由主节点的一个安全组和默认情况下不具有外部访问权限的其他节点类型的其他安全组进行分段。 当然,您可以修改此行为,但强烈建议不要向集群开放世界。 数据也在 Amazon S3 上受到保护,您可以使用 CloudTrail 启用审核。

您也可以利用 Hadoop 文件系统将数据存储在集群本身中。 您还可以将结果存储回 DynamoDB 表,如果您想利用现有的 BI 工具和数据仓库基础设施,则可以将结果提供给 Redshift。 或者使用 Amazon Glacier 将它们保存用于存档目的,也可以将它们放入关系数据库系统中。

Amazon EMR 包含三个基本架构组件,它们都是节点类型:主节点、核心节点和任务节点。

主节:每个集群只有一个主节点,它负责实际管理 EMR 集群并运行进程来处理分布式应用程序。 这些进程的示例包括 YARN ResourceManager 和 HDFS NameNode 服务。 这些允许主节点使用集群管理应用程序的资源。 主节点还跟踪已提交的 EMR 作业,并包含 Hadoop 日志文件,如果您本地连接到主节点,则可以访问这些文件。

Core 节点: Master 节点链中的下一个节点,因此 Core 节点由 Master 节点管理。 可以配置多个核心节点,以便您实施实例队列。 实例队列允许您使用最多 5 种不同的实例类型配置多个核心节点。 在实例队列中,您可以在集群使用时使用自动扩展根据需要添加或删除实例。

核心节点还运行许多进程,与主节点非常相似,其中包括管理 Hadoop 分布式文件系统 (HDFS) 内的数据存储的数据节点守护进程。 此外,核心节点运行任务跟踪器守护进程,允许进行并行处理

任务节点:在三种可用的节点类型中,任务节点是集群中唯一可选的节点类型。 利用任务节点,您可以使用 Hadoop MapReduce 任务或 Spark 执行器对数据实施一定程度的并行计算操作。 同样,使用自动扩展,您可以自动扩展实例队列中的任务节点。

为了优化成本,使用实例队列中的 Spot 实例作为任务节点是执行 EMR 作业处理的非常有效的方法。

配置集群时,您需要考虑要在运行 HDFS 的核心节点上存储的数据量。 对于处理,您可以根据需要添加任意数量的任务节点,如果您过度配置集群,您可以动态减少任务节点的数量,而不会中断正在运行的作业。

在添加或删除容量时,如果需要更多容量,您可以部署多个集群,并且可以轻松启动新集群并在不再需要时终止它。 您可以拥有的集群数量没有限制。 如果您有多个用户或要运行不同的作业,您可能需要使用多个集群。 例如,您可以将输入数据存储在 S3 中,并为需要处理该数据的每个应用程序启动一个集群。 一个集群可能针对 CPU 进行优化,另一集群针对存储进行优化,您还可以调整正在运行的集群的大小。 借助 Amazon EMR,可以轻松调整正在运行的集群的大小。 您可能需要调整集群大小以暂时添加更多处理能力或缩小集群以节省资金。

相关推荐
zhixingheyi_tian4 小时前
Spark 之 Aggregate
大数据·分布式·spark
PersistJiao4 小时前
Spark 分布式计算中网络传输和序列化的关系(一)
大数据·网络·spark
宅小海7 小时前
scala String
大数据·开发语言·scala
小白的白是白痴的白7 小时前
11.17 Scala练习:梦想清单管理
大数据
java1234_小锋7 小时前
Elasticsearch是如何实现Master选举的?
大数据·elasticsearch·搜索引擎
Java 第一深情11 小时前
零基础入门Flink,掌握基本使用方法
大数据·flink·实时计算
MXsoft61811 小时前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
PersistJiao12 小时前
Spark 分布式计算中网络传输和序列化的关系(二)
大数据·网络·spark·序列化·分布式计算
九河云12 小时前
如何对AWS进行节省
大数据·云计算·aws
FreeIPCC13 小时前
谈一下开源生态对 AI人工智能大模型的促进作用
大数据·人工智能·机器人·开源