阿里云 Elastic MapReduce(E-MapReduce)是运行在阿里云平台上的一种大数据处理的系统解决方案。

E-MapReduce 构建于阿里云云服务器 ECS 上,基于开源的 Apache Hadoop 和 Apache Spark,让您可以方便地使用 Hadoop 和 Spark 生态系统中的其他周边系统(例如,Apache Hive、Apache Pig 和 HBase 等)来分析和处理自己的数据。不仅如此,E-MapReduce 还可以方便的与阿里云其他的云数据存储系统和数据库系统(例如,阿里云 OSS 和 RDS 等)进行数据传输。

E-MapReduce 的用途

以往在使用 Hadoop 和 Spark 等分布式处理系统时,您通常需要经历如下步骤:

在上述使用流程中,真正跟用户的应用逻辑相关的是步骤 8 ~ 10,而步骤 1 ~ 7 都是前期准备工作,但这些前期准备工作都非常冗长繁琐。E-MapReduce 提供了集群管理工具的集成解决方案,例如,主机选型、环境部署、集群搭建、集群配置、集群运行、作业配置、作业运行、集群管理和性能监控等。通过 E-MapReduce,您可以从繁琐的集群构建相关的采购、准备和运维等工作中解放出来,只关心自己应用程序的处理逻辑即可。

此外,E-MapReduce 还给用户提供了灵活的搭配组合方式,您可以根据自己的业务特点选择不同的集群服务。例如,如果您的需求是对数据进行日常统计和简单的批量运算,则可以只选择在 E-MapReduce 中运行 Hadoop 服务;如果您有流式计算和实时计算的需求,则可以在 Hadoop 服务基础上再加入 Spark 服务。

E-MapReduce 的组成

E-MapReduce 最核心也是用户直接面对的组件是集群。E-MapReduce 集群是由一个或多个阿里云 ECS 实例组成的 Hadoop 和 Spark 集群。以 Hadoop 为例,每个 ECS Instance 上通常都运行了一些 daemon 进程(例如,NameNode、DataNode、ResouceManager 和 NodeManager),这些 daemon 进程共同组成了 Hadoop 集群。其中运行 NameNode 和 ResourceManager 的节点称为 Master 节点,而运行 DataNode 和 NodeManager 的节点称为 Slave 节点。

例如,下图是一个包含一个 Master 节点和三个 Slave 节点的 E-MapReduce 集群:
1个 master 节点和3个 slave 节点的 E-MapReduce 集群架构