、、、
当用户想要使用 Hadoop、Spark 等分布式处理系统的时候,通常需要经历如下的步骤:
- 评估业务特点
- 选择机器类型
- 采购机器
- 准备硬件环境
- 安装操作系统
- 部署 Hadoop 和 Spark 等 app
- 启动集群
- 编写应用程序
- 运行作业
- 获取数据等一系列的步骤
在这些流程中,真正跟用户的应用逻辑相关的是从第8步才开始,第1-7步的各项工作都是前期的准备工作,通常这个前期工作都非常冗长繁琐。而 E-MapReduce 提供了集群管理工具的集成解决方案,如主机选型、环境部署、集群搭建、集群配置、集群运行、作业配置、作业运行、集群管理、性能监控等。
通过使用 E-MapReduce,用户可以从集群构建各种繁琐的采购、准备、运维等工作中解放出来,只关心自己应用程序的处理逻辑即可。此外,E-MapReduce 还给用户提供了灵活的搭配组合方式,用户可以根据自己的业务特点选择不同的集群服务。例如,如果用户的需求是对数据进行日常统计和简单的批量运算,则可以只选择在 E-MapReduce 中运行 Hadoop 服务;而如果用户还需要流式计算和实时计算的需求,则可以在 Hadoop 服务基础上再加入 Spark 服务。
E-MapReduce 的组成
E-MapReduce 最核心也是用户直接面对的组件是集群。一个 E-MapReduce 集群是由一个或多个阿里云 ECS instance 组成的 Hadoop 和 Spark 集群。以 Hadoop 为例,在每一个 ECS instance 上,通常都运行了一些 daemon 进程(如 namenode、datanode、resoucemanager 和 nodemanager),这些 daemon 进程就组成了 Hadoop 集群。运行 namenode 和 resourcemanager 的节点被称为 master 节点,而运行 datanode 和 nodemanager 的节点被称为 slave 节点。
例如,下图表示了一个包含1个 master 节点和3个 slave 节点的 E-MapReduce 集群: