选择配置合适的 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.003$/月/GB。

E-MapReduce 节点

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

E-MapReduce 存储可以采用高效云盘、SSD 云盘和本地盘。磁盘效能为 SSD云盘 > 本地盘 > 高效云盘。

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

存储价格大致估算如下:

  • 本地盘实例存储为 0.003 $/GB/月
  • OSS标准型存储为 0.02 $/GB/月
  • 高效云盘存储为 0.05 $/GB/月
  • SSD云盘存储为 0.143 $/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 最好与业务系统部署在同一地域的同一个可用区