选择配置合适的 Hadoop 集群是 E-MapReduce 产品使用的第一步。E-MapReduce 配置选型不仅要考虑企业大数据使用场景,估算数据量、服务可靠性要求,还要考虑企业预算。

大数据使用场景

E-MapReduce 产品当前主要满足企业的以下大数据场景:

  • 批处理场景,要求具有高磁盘吞吐、高网络吞吐,实时性要求低。要处理的数据量大,但对处理的实时性要求不高,可采用 MapReduce、Pig、Spark 组件。对内存要求不高,选型时重点关注大作业对 CPU 和内存的需求,以及 Shuffle 对网络的需求。
  • Ad-Hoc 查询,数据科学家或数据分析师利用即席查询工具检索数据。要求查询实时性高、高磁盘吞吐、高网络吞吐,可以选择使用 E-MapReduce 的 Impala、Presto 组件,内存要求高,选型时要考虑数据和并发查询的数量。
  • 流式计算、高网络吞吐、计算密集型场景下,可以选择使用E-MapReduce Flink、Spark Streaming、Storm 组件。
  • 消息队列,高磁盘吞吐,高网络吞吐,内存消耗大,存储不依赖于 HDFS,可以选择使用 E-MapReduce Kafka。为避免对 Hadoop 的影响,E-MapReduce 将 Kafka 与 Hadoop 分为两个集群。
  • 数据冷备场景,计算和磁盘吞吐要求不高,但要求冷备成本低,推荐使用 EMR D1 实例做数据冷备,D1 本地盘实例存储成本为 0.02 元/月/GB。

E-MapReduce 节点

E-MapReduce 节点有 3 种实例类型:主实例(Master)、核心实例(Core)和计算实例(Task)。

EMR存储可以采用高效云盘、SSD 云盘和本地盘。磁盘效能为 SSD 云盘>本地盘>高效云盘。详细性能参数可以查看:块存储性能和本地盘。

E-MapReduce 底层存储支持 OSS(仅标准型 OSS)和 HDFS。OSS 相对 HDFS 数据可用性更高,OSS 的数据可用性为 99.99999999%,HDFS 的数据可用性是由云盘或本地盘存储的可靠性来保证。

存储价格大致估算如下:

  • 本地盘实例存储为 0.02 元/GB/月
  • OSS标准型存储为 0.14 元/GB/月
  • 高效云盘存储为 0.35 元/GB/月
  • SSD云盘存储为 1 元/GB/月

E-MapReduce 选型

  • Master 节点选型

    • Master 节点主要部署 Hadoop 的 Master 进程,如 NameNode、ResourceManager 等。

    • 生产集群建议打开高可用HA,E-MapReduce 的 HDFS、YARN、Hive、HBase 等组件均已实现 HA。生产集群建议在节点配置位置开启高可用。如果购买时不开启高可用,集群将无法在后续使用过程中开启高可用功能。

    • Master 节点主要用来存储 HDFS 元数据和组件 Log 文件,属于计算密集型,对磁盘 IO 要求不高。HDFS 元数据存储在内存中,建议根据文件数量选择 16 GB 以上内存空间。

  • Core 节点选型

    • Core 节点主要用来存储数据和执行计算的节点,运行 DataNode、Nodemanager。

    • HDFS ( 3 备份)数据量大于 60 TB,建议采用本地盘实例(ECS.d1,ECS.d1NE),本地盘的磁盘容量为:(CPU 核数/2)*5.5 TB*实例数量,如购买 4 台8 核 D1 实例,磁盘容量为:8/2*5.5*4 台=88 TB。因为 HDFS 采用 3 备份,所以本地盘实例最少购买 3 台,考虑到数据可靠性和磁盘损坏因素,建议最少购买 4 台。

    • HDFS 数据量小于 60 TB,可以考虑高效云盘和 SSD 云盘。

  • Task 节点选型

    • Task 节点主要用来补充 Core 节点 CPU 和内存计算能力的不足,节点并不存储数据,不运行 DataNode,用户可以根据 CPU 和内存需求估算实例个数。

E-MapReduce 生命周期

E-MapReduce 支持弹性扩展,可以快速的扩容,灵活调整集群节点配置,或者对 ECS 节点升降配

可用区选择

为保证效率,E-MapReduce 最好与业务系统部署在同一地域的同一个可用区