选择硬件与网络

更新时间:2025-04-27 02:19:04

在创建阿里云EMR集群时,合理的硬件配置和网络环境设计是确保集群性能、成本及可靠性的关键因素。本文将详细介绍如何根据大数据处理的需求,进行服务高可用选型、节点规格选择和网络配置方案设计。

服务高可用选型

根据业务场景与实际需求,您可以选择是否开启服务高可用功能。当开启服务高可用后,集群将采用多主节点模式,通过分布式与故障切换机制,消除单点故障风险,保障服务的连续性。

对比维度

单主节点集群

多主节点集群

对比维度

单主节点集群

多主节点集群

适用场景

  • 测试环境

  • 对可用性要求不高的场景

  • 生产环境

  • 高可用性需求场景

核心特性

单节点架构,部署简单,但存在单点故障风险。

  • 消除单点故障风险:多节点集群架构,通过切换到其他可用主节点保证服务的连续性。

  • 集群可靠性高:支持HDFS NameNode、YARN ResourceManager等核心组件的高可用配置。

  • 硬件隔离:通过ECS部署集将多个主节点分布在不同的物理硬件上,避免因底层硬件故障导致多个主节点同时失效。

故障恢复

无自动恢复:需人工介入排查并重启。

自动故障恢复:EMR服务会自动替换发生故障的主节点,并配置与原节点相同的环境和引导操作。

成本

成本低:只需配置1个主节点。

成本较高:需要配置3个主节点,通过分布式系统的共识算法实现多数派决策机制,满足开源组件(如ZooKeeper、HDFS)的数据强一致性要求,可容忍单节点故障并避免脑裂。

节点规格选型

集群配置流程如下:

  1. 确定业务场景:根据业务场景,完成相应的选型(例如:数据湖、数据分析、实时数据流、数据服务还是自定义集群的场景)。

  2. 选择存储架构:根据业务数据特性,确定选择存算一体(HDFS)还是存算分离(OSS-HDFS/OSS)架构。

  3. 配置节点规格与磁盘大小:

    1. 配置节点规格:在对应的业务场景下,根据选择的存储架构、集群规模及业务特性等多因素,为不同的节点类型(例如:Master、Core、Task)选择合适的ECS实例规格(例如:通用型、计算型、内存型、大数据型等)。

    2. 配置磁盘大小:根据数据量及增长预期,计算存储容量并配置相应的磁盘大小。

数据湖场景
数据分析场景
实时数据流场景
数据服务场景
自定义集群场景
存算一体(HDFS)
存算分离(OSS-HDFS/OSS)

节点类型

推荐规格

Master

负责管理集群和协调任务。
部署服务:NameNode、ResourceManager、HiveServer、HiveMetastore、SparkHistoryServer。
  • 常规场景:通用型实例,磁盘选择云盘。

  • 小型集群(≤ 8台实例):832 GiB。

  • 中大型集群:≥ 1664 GiB。

  • 超大HDFS文件数量(≥ 1000万):规格要满足NameNode内存需求。

Core

提供计算能力和存储资源。
部署服务:DataNode、NodeManager。

Core节点实例规格与业务类型以及资源需求等因素有关。

  • 业务类型匹配:根据Yarn任务的CPU与内存需求比例选择实例类型。

    • 默认场景:通用型实例。

    • CPU密集型任务(如AI推理训练):计算型实例。

    • 内存密集型任务(如离线报表分析):内存型实例。

  • HDFS存储需求(> 10 TB/节点):大数据型实例。该机型使用本地盘存储,可降低存储成本,但需自主维护本地盘。

  • 内存容量约束:节点内存规格 > Yarn任务单Container内存峰值。

Task

仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。
部署服务:NodeManager。

峰谷场景建议:

  • 固定Core节点规格按低谷计算需求配置。

  • 弹性Task节点规格 ≥ Core节点规格以应对峰值需求。

节点类型

推荐规格

Master

负责管理集群和协调任务。
部署服务:ResourceManager、HiveServer、HiveMetastore、SparkHistoryServer。

  • 常规场景:通用型实例,磁盘选择云盘。

  • 小型集群(≤ 8台实例):832 GiB。

  • 中大型集群:≥ 1664 GiB。

Core

功能与Task节点相似,不存储数据。
部署服务:NodeManager。

Core节点不支持弹性伸缩能力,推荐仅使用Task节点的方案,不需要配置Core节点。

Task

提供计算能力。
部署服务:NodeManager。
  • 业务类型匹配:根据Yarn任务的CPU与内存需求比例选择实例类型。

    • 默认场景:通用型实例。

    • CPU密集型任务(如AI推理训练):计算型实例。

    • 内存密集型任务(如离线报表分析):内存型实例。

  • 内存容量约束:节点内存规格 > Yarn任务单Container内存峰值。

在数据分析场景中目前仅支持存算一体的存储架构。不同节点类型的ECS实例选型方案请参见下表。

节点类型

推荐规格

Master

负责管理集群和协调任务。
部署服务:Starrocks FE、Doris FE、Zookeeper。
  • 常规场景:通用型实例,磁盘选择云盘。

  • 小型集群(≤ 8台实例):832 GiB。

  • 中大型集群:≥ 1664 GiB。

Core

提供计算能力和存储资源。
部署服务:Starrocks BE、Doris BE、ClickhouseKeeper、ClickhouseServer。

Core节点实例规格与业务计算需求以及数据存储量等因素有关。

  • 存储量 ≤ 10 TB/节点:实例规格与实际业务计算需求相关。

    • 默认场景:通用型实例,磁盘选择云盘。

    • CPU密集型任务(涉及大量计算操作):计算型实例。

    • 内存密集型任务(需要更大缓存提升性能):内存型实例。

  • 存储量 > 10 TB/节点:大数据型实例。该机型使用本地盘存储,可降低存储成本,但需自主维护本地盘。

Task

提供计算能力。
部署服务:Starrocks CN。

StarRocks Compute Node支持在Task节点部署,如果您没有使用StarRocks组件,则不需要使用Task节点。

峰谷场景建议:

  • 固定Core节点规格按低谷计算需求配置。

  • 弹性Task节点规格 ≥ Core节点规格以应对峰值需求。

存算一体(HDFS)
存算分离(OSS-HDFS/OSS)

节点类型

推荐规格

Master

负责管理集群和协调任务。
部署服务:NameNode、ResourceManager、FlinkHistoryServer、Zookeeper。
  • 常规场景:通用型实例,磁盘选择云盘。

  • 小型集群(≤ 8台实例):832 GiB。

  • 中大型集群:≥ 1664 GiB。

  • 超大HDFS文件数量(≥1000万):规格要满足NameNode内存需求。

Core

提供计算能力和存储资源。
部署服务:DataNode、NodeManager。

Core节点实例规格与业务类型以及资源需求等因素有关。

  • 业务类型匹配:根据Flink任务的CPU与内存需求比例选择实例类型。

    • 默认场景:通用型实例。

    • CPU密集型任务:计算型实例。

    • 内存密集型任务:内存型实例。

  • HDFS存储需求(> 10 TB/节点):大数据型实例。该机型使用本地盘存储,可降低存储成本,但需自主维护本地盘。

  • 内存容量约束:节点内存规格 > Flink任务单JobManagerTaskManager的内存峰值。

Task

仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。
部署服务:NodeManager。

峰谷场景建议:

  • 固定Core节点规格按低谷计算需求配置。

  • 弹性Task节点规格 ≥ Core节点规格以应对峰值需求。

节点类型

推荐规格

Master

负责管理集群和协调任务。
部署服务:ResourceManager、FlinkHistoryServer、Zookeeper。
  • 常规场景:通用型实例,磁盘选择云盘。

  • 小型集群(≤ 8台实例):832 GiB。

  • 中大型集群:≥ 1664GiB。

Core

功能与Task节点相似,不存储数据。
部署服务:NodeManager。

Core节点不支持弹性伸缩能力,推荐仅使用Task节点的方案,不需要配置Core节点。

Task

提供计算能力。
部署服务:NodeManager。
  • 业务类型匹配:根据Flink任务的CPU与内存需求比例选择实例类型。

    • 默认场景:通用型实例。

    • CPU密集型任务:计算型实例。

    • 内存密集型任务:内存型实例。

  • 内存容量约束:节点内存规格 > Flink任务单JobManagerTaskManager的内存峰值。

存算一体(HDFS)
存算分离(OSS-HDFS/OSS)

节点类型

推荐规格

Master

负责管理集群和协调任务。
部署服务:NameNode、HMaster、Zookeeper。
  • 常规场景:通用型实例,磁盘选择云盘。

  • 中小型集群(≤ 16台实例):832 GiB。

  • 大型集群:≥ 1664 GiB。

  • 超大HDFS文件数量(≥ 1000万):规格要满足NameNode内存需求。

Core

提供计算能力和存储资源。
部署服务:DataNode、HRegionServer。

Core节点实例规格与业务请求量以及存储量等因素有关。

  • 业务请求量:通用型实例,磁盘选择云盘。

    • 小型集群(≤ 8台实例):832 GiB,Core节点数量 ≤ 8个,单台节点QPS ≤ 10000。

    • 中大型集群:≥ 1664 GiB,Core节点数量根据实际情况确定。

  • HDFS存储量(> 10 TB/节点):大数据型实例。该机型使用本地盘存储,可降低存储成本,但需自主维护本地盘。

Task

仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。
部署服务:HRegionServer。

在数据服务场景中,由于数据存储在Core节点,为保证数据本地性,通常不推荐使用Task节点。

节点类型

推荐规格

Master

负责管理集群和协调任务。
部署服务:NameNode、HMaster、Zookeeper。
  • 常规场景:通用型实例,磁盘选择云盘。

  • 中小型集群(≤ 16台实例):832 GiB。

  • 大型集群:≥ 1664 GiB。

Core

提供计算能力和存储资源。
部署服务:DataNode、HRegionServer。

使用OSS-HDFS/OSS存储HBase HLog对写入性能有较大影响,推荐将HBase HLog保存在HDFS上。

Core节点实例规格与业务请求量等因素有关,推荐通用型实例,磁盘空间 ≥ 500 GiB。

  • 小型集群(≤ 8台实例):832 GiB,Core节点数量 ≤ 8个,单台节点QPS ≤ 10000。

  • 中大型集群:≥ 1664 GiB,Core节点数量根据实际情况确定。

Task

提供计算能力。
部署服务:HRegionServer。

峰谷场景建议:

  • 固定Core节点 + 弹性Task节点模式。

  • Task节点规格与Core节点保持一致即可。

当您的业务涉及离线ETL、实时ETL、复杂聚合分析及高并发查询服务等多场景混合时:

  • 推荐采用多类型集群组合方案:通过独立部署不同特性的集群(如离线批处理集群、实时流处理集群、分析型集群及查询加速集群),实现资源隔离与场景适配,保障各类任务的性能与稳定性。

  • 如果业务规模较小且场景间资源需求无冲突,可以选择自定义集群:通过灵活配置降低部署复杂度并提升资源利用率。

存算一体(HDFS)
存算分离(OSS-HDFS/OSS)

节点类型

推荐规格

Master

负责管理集群和协调任务。
  • 小型集群(≤ 8台实例):通用型实例832 GiB,磁盘选择云盘。

  • 超大HDFS文件数量(≥1000万):规格要满足NameNode内存需求。

Core

提供计算能力和存储资源。

Core节点实例规格与业务类型以及资源需求等因素有关。

  • 业务类型匹配:根据集群上任务的CPU与内存需求比例选择实例类型。

    • 默认场景:通用型实例。

    • CPU密集型任务:计算型实例。

    • 内存密集型任务:内存型实例。

  • 存储需求(> 10 TB/节点):大数据型实例。该机型使用本地盘存储,可降低存储成本,但需自主维护本地盘。

  • 内存容量约束:节点内存规格 > Max(Yarn任务单Container内存峰值 , Flink任务单JobManagerTaskManager的内存峰值)。

Task

仅提供计算能力,不存储数据,主要用于补充Core节点在CPU和内存需求的不足。

峰谷场景建议:

  • 固定Core节点规格按低谷计算需求配置。

  • 弹性Task节点规格 ≥ Core节点规格以应对峰值需求。

节点类型

推荐规格

Master

负责管理集群和协调任务。

小型集群(≤ 8台实例):通用型实例832 GiB,磁盘选择云盘。

Core

功能与Task节点相似,不存储数据。
  • 无需存储数据时,推荐采用仅弹性Task节点方案,不配置Core节点。

  • 需要使用HBase服务:

    • 为保证写入性能,推荐将HBase HLog保存在HDFS上。

    • 规格:通用型实例1664 GiB,磁盘空间 ≥ 500 GiB。

Task

提供计算能力。

不配置Core节点,只配置Task节点的情况:

  • 业务类型匹配:根据Flink任务的CPU与内存需求比例选择实例类型。

    • 默认场景:通用型实例。

    • CPU密集型任务:计算型实例。

    • 内存密集型任务:内存型实例。

  • 内存容量约束:节点内存规格 > Max(Yarn任务单Container内存峰值 , Flink任务单JobManagerTaskManager的内存峰值)。

Core节点和Task节点都配置的情况,需要考虑峰谷场景:

  • 固定Core节点 + 弹性Task节点模式。

  • Task节点规格与Core节点保持一致即可。

网络配置建议

关键维度

配置建议

关键维度

配置建议

VPC网络配置

  • 预留足够的IP地址资源:选择合适的VPC和交换机,同时需要在规划网段时预留好扩展空间。

  • 网络互通:需要规划好与其他云服务的网络互通路径。

安全组配置

  • 最小权限原则:合理配置安全组规则,只开放必要的端口,将入站规则设置为仅允许可信IP地址或网络段的访问,防止挖矿等攻击。

  • 严格管控管理端口:针对SSH等管理端口需设置严格的访问控制,保证集群安全。

网络连接配置

  • 提升网络性能:对于数据量大的场景,可以考虑使用内网带宽大的实例。

  • 减少跨可用区流量:合理规划集群与数据源之间的网络拓扑。

  • 外网访问控制:如果需要提供外网访问能力,可以使用NAT网关或弹性IP实现。

附录: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的实例类型,在大计算量的场景下,稳定性不够,仅适用入门级学习,不推荐企业客户使用。仅任务节点提供该实例类型。

  • 本页导读 (1)
  • 服务高可用选型
  • 节点规格选型
  • 网络配置建议
  • 附录:ECS实例类型