在创建阿里云EMR集群时,合理的硬件配置和网络环境设计是确保集群性能、成本及可靠性的关键因素。本文将详细介绍如何根据大数据处理的需求,进行服务高可用选型、节点规格选择和网络配置方案设计。
服务高可用选型
根据业务场景与实际需求,您可以选择是否开启服务高可用功能。当开启服务高可用后,集群将采用多主节点模式,通过分布式与故障切换机制,消除单点故障风险,保障服务的连续性。
| 对比维度 | 单主节点集群 | 多主节点集群 | 
| 适用场景 | 
 | 
 | 
| 核心特性 | 单节点架构,部署简单,但存在单点故障风险。 | 
 | 
| 故障恢复 | 无自动恢复:需人工介入排查并重启。 | 自动故障恢复:EMR服务会自动替换发生故障的主节点,并配置与原节点相同的环境和引导操作。 | 
| 成本 | 成本低:只需配置1个主节点。 | 成本较高:需要配置3个主节点,通过分布式系统的共识算法实现多数派决策机制,满足开源组件(如ZooKeeper、HDFS)的数据强一致性要求,可容忍单节点故障并避免脑裂。 | 
节点规格选型
集群配置流程如下:
- 确定业务场景:根据业务场景,完成相应的选型(例如:数据湖、数据分析、实时数据流、数据服务还是自定义集群的场景)。 
- 选择存储架构:根据业务数据特性,确定选择存算一体(HDFS)还是存算分离(OSS-HDFS/OSS)架构。 
- 配置节点规格与磁盘大小: 
数据湖场景
存算一体(HDFS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:NameNode、ResourceManager、HiveServer、HiveMetastore、SparkHistoryServer。 | 
 | 
| Core 提供计算能力和存储资源。 部署服务:DataNode、NodeManager。 | Core节点实例规格与业务类型以及资源需求等因素有关。 
 | 
| Task 仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。 部署服务:NodeManager。 | 峰谷场景建议: 
 | 
存算分离(OSS-HDFS/OSS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:ResourceManager、HiveServer、HiveMetastore、SparkHistoryServer。 | 
 | 
| Core 功能与Task节点相似,不存储数据。 部署服务:NodeManager。 | Core节点不支持弹性伸缩能力,推荐仅使用Task节点的方案,不需要配置Core节点。 | 
| Task 提供计算能力。 部署服务:NodeManager。 | 
 | 
数据分析场景
存算一体
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:StarRocks FE、Doris FE、Zookeeper。 | 
 | 
| Core 提供计算能力和存储资源。 部署服务:StarRocks BE、Doris BE、ClickhouseKeeper、ClickhouseServer。 | Core节点实例规格与业务计算需求以及数据存储量等因素有关。 
 | 
| Task 提供计算能力。 部署服务:StarRocks CN。 | 仅StarRocks Compute Node支持在Task节点部署,如果您没有使用StarRocks组件,则不需要使用Task节点。 峰谷场景建议: 
 | 
存算分离
仅StarRocks 3.x版本支持存算分离。
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:StarRocks FE、Zookeeper。 | 
 | 
| Task 提供计算能力。 部署服务:StarRocks CN。 | StarRocks存算分离架构下没有Core节点,仅需使用Task节点。 
 实例规格根据实际业务计算需求评估,一般选择≥16核64 GiB。节点数量根据业务需求弹性伸缩。 | 
实时数据流场景
存算一体(HDFS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:NameNode、ResourceManager、FlinkHistoryServer、Zookeeper。 | 
 | 
| Core 提供计算能力和存储资源。 部署服务:DataNode、NodeManager。 | Core节点实例规格与业务类型以及资源需求等因素有关。 
 | 
| Task 仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。 部署服务:NodeManager。 | 峰谷场景建议: 
 | 
存算分离(OSS-HDFS/OSS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:ResourceManager、FlinkHistoryServer、Zookeeper。 | 
 | 
| Core 功能与Task节点相似,不存储数据。 部署服务:NodeManager。 | Core节点不支持弹性伸缩能力,推荐仅使用Task节点的方案,不需要配置Core节点。 | 
| Task 提供计算能力。 部署服务:NodeManager。 | 
 | 
数据服务场景
存算一体(HDFS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:NameNode、HMaster、Zookeeper。 | 
 | 
| Core 提供计算能力和存储资源。 部署服务:DataNode、HRegionServer。 | Core节点实例规格与业务请求量以及存储量等因素有关。 
 | 
| Task 仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。 部署服务:HRegionServer。 | 在数据服务场景中,由于数据存储在Core节点,为保证数据本地性,通常不推荐使用Task节点。 | 
存算分离(OSS-HDFS/OSS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 部署服务:NameNode、HMaster、Zookeeper。 | 
 | 
| Core 提供计算能力和存储资源。 部署服务:DataNode、HRegionServer。 | 使用OSS-HDFS/OSS存储HBase HLog对写入性能有较大影响,推荐将HBase HLog保存在HDFS上。 Core节点实例规格与业务请求量等因素有关,推荐通用型实例,磁盘空间 ≥ 500 GiB。 
 | 
| Task 提供计算能力。 部署服务:HRegionServer。 | 峰谷场景建议: 
 | 
自定义集群场景
当您的业务涉及离线ETL、实时ETL、复杂聚合分析及高并发查询服务等多场景混合时:
- 推荐采用多类型集群组合方案:通过独立部署不同特性的集群(如离线批处理集群、实时流处理集群、分析型集群及查询加速集群),实现资源隔离与场景适配,保障各类任务的性能与稳定性。 
- 如果业务规模较小且场景间资源需求无冲突,可以选择自定义集群:通过灵活配置降低部署复杂度并提升资源利用率。 
存算一体(HDFS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 | 
 | 
| Core 提供计算能力和存储资源。 | Core节点实例规格与业务类型以及资源需求等因素有关。 
 | 
| Task 仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。 | 峰谷场景建议: 
 | 
存算分离(OSS-HDFS/OSS)
| 节点类型 | 推荐规格 | 
| Master 负责管理集群和协调任务。 | 小型集群(≤ 8台实例):通用型实例8核32 GiB,磁盘选择云盘。 | 
| Core 功能与Task节点相似,不存储数据。 | 
 | 
| Task 提供计算能力。 | 不配置Core节点,只配置Task节点的情况: 
 Core节点和Task节点都配置的情况,需要考虑峰谷场景: 
 | 
网络配置建议
| 关键维度 | 配置建议 | 
| VPC网络配置 | 
 | 
| 安全组配置 | 
 | 
| 网络连接配置 | 
 | 
附录:ECS实例类型
您可以通过实例规格族查看在售的ECS实例规格族的特点、规格及适用场景,为您在EMR控制台配置节点实例规格提供参考。
| 实例类型 | 特性 | 
| 通用型 | vCPU:Memory=1:4,简称g系列。 | 
| 计算型 | vCPU:Memory=1:2,可以提供更多的计算资源,简称c系列。 | 
| 内存型 | vCPU:Memory=1:8,可以提供更多的内存资源,简称r系列。 | 
| 本地SSD | vCPU:Memory=1:4,使用本地SSD盘,具有高随机IOPS和高吞吐能力,但存在数据丢失风险。主节点不提供该实例类型。简称i系列。 | 
| 大数据型 | vCPU:Memory=1:4,使用本地SATA盘存储数据,存储性价比高,是大数据量(TB级别的数据量)场景下的推荐机型。简称d系列。 | 
| 共享型 | 共享CPU的实例类型,在大计算量的场景下,稳定性不够,仅适用入门级学习,不推荐企业客户使用。仅任务节点提供该实例类型。 |