全部產品
Search
文件中心

E-MapReduce:選擇硬體與網路

更新時間:May 17, 2025

在建立阿里雲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)

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:NameNode、ResourceManager、HiveServer、HiveMetastore、SparkHistoryServer。
  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 小型叢集(≤ 8台執行個體):8核32 GiB。

  • 中大型叢集:≥ 16核64 GiB。

  • 超大HDFS檔案數量(≥ 1000萬):規格要滿足NameNode記憶體需求。

Core

提供計算能力和儲存資源。
部署服務:DataNode、NodeManager。

Core節點執行個體規格與業務類型以及資源需求等因素有關。

  • 業務類型匹配:根據Yarn任務的CPU與記憶體需求比例選擇執行個體類型。

    • 預設情境:通用型執行個體。

    • CPU密集型任務(如AI推理訓練):計算型執行個體。

    • 記憶體密集型任務(如離線報表分析):記憶體型執行個體。

  • HDFS儲存需求(> 10 TB/節點):巨量資料型執行個體。該機型使用本地碟儲存,可降低儲存成本,但需自主維護本地碟。

  • 記憶體容量約束:節點記憶體規格 > Yarn任務單Container記憶體峰值。

Task

僅提供計算能力,不儲存資料,主要用於補充Core節點在CPU和記憶體需求的不足。
部署服務:NodeManager。

峰穀情境建議:

  • 固定Core節點規格按低穀計算需求配置。

  • 彈性Task節點規格 ≥ Core節點規格以應對峰值需求。

存算分離(OSS-HDFS/OSS)

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:ResourceManager、HiveServer、HiveMetastore、SparkHistoryServer。

  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 小型叢集(≤ 8台執行個體):8核32 GiB。

  • 中大型叢集:≥ 16核64 GiB。

Core

功能與Task節點相似,不儲存資料。
部署服務:NodeManager。

Core節點不支援Auto Scaling能力,推薦僅使用Task節點的方案,不需要配置Core節點。

Task

提供計算能力。
部署服務:NodeManager。
  • 業務類型匹配:根據Yarn任務的CPU與記憶體需求比例選擇執行個體類型。

    • 預設情境:通用型執行個體。

    • CPU密集型任務(如AI推理訓練):計算型執行個體。

    • 記憶體密集型任務(如離線報表分析):記憶體型執行個體。

  • 記憶體容量約束:節點記憶體規格 > Yarn任務單Container記憶體峰值。

資料分析情境

存算一體

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:StarRocks FE、Doris FE、Zookeeper。
  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 小型叢集(≤ 8台執行個體):8核32 GiB。

  • 中大型叢集:≥ 16核64 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節點規格以應對峰值需求。

存算分離

僅StarRocks 3.x版本支援存算分離。

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:StarRocks FE、Zookeeper。
  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 小型叢集(≤ 8台執行個體):8核32 GiB。

  • 中大型叢集:≥ 16核64 GiB。

Task

提供計算能力。
部署服務:StarRocks CN。

StarRocks存算分離架構下沒有Core節點,僅需使用Task節點。

  • 預設情境:通用型執行個體,磁碟選擇雲端硬碟。

  • CPU密集型任務(涉及大量計算操作):計算型執行個體。

  • 記憶體密集型任務(需要更大緩衝提升效能):記憶體型執行個體。

執行個體規格根據實際業務計算需求評估,一般選擇≥16核64 GiB。節點數量根據業務需求Auto Scaling。

即時資料流情境

存算一體(HDFS)

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:NameNode、ResourceManager、FlinkHistoryServer、Zookeeper。
  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 小型叢集(≤ 8台執行個體):8核32 GiB。

  • 中大型叢集:≥ 16核64 GiB。

  • 超大HDFS檔案數量(≥1000萬):規格要滿足NameNode記憶體需求。

Core

提供計算能力和儲存資源。
部署服務:DataNode、NodeManager。

Core節點執行個體規格與業務類型以及資源需求等因素有關。

  • 業務類型匹配:根據Flink任務的CPU與記憶體需求比例選擇執行個體類型。

    • 預設情境:通用型執行個體。

    • CPU密集型任務:計算型執行個體。

    • 記憶體密集型任務:記憶體型執行個體。

  • HDFS儲存需求(> 10 TB/節點):巨量資料型執行個體。該機型使用本地碟儲存,可降低儲存成本,但需自主維護本地碟。

  • 記憶體容量約束:節點記憶體規格 > Flink任務單JobManager或TaskManager的記憶體峰值。

Task

僅提供計算能力,不儲存資料,主要用於補充Core節點在CPU和記憶體需求的不足。
部署服務:NodeManager。

峰穀情境建議:

  • 固定Core節點規格按低穀計算需求配置。

  • 彈性Task節點規格 ≥ Core節點規格以應對峰值需求。

存算分離(OSS-HDFS/OSS)

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:ResourceManager、FlinkHistoryServer、Zookeeper。
  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 小型叢集(≤ 8台執行個體):8核32 GiB。

  • 中大型叢集:≥ 16核64GiB。

Core

功能與Task節點相似,不儲存資料。
部署服務:NodeManager。

Core節點不支援Auto Scaling能力,推薦僅使用Task節點的方案,不需要配置Core節點。

Task

提供計算能力。
部署服務:NodeManager。
  • 業務類型匹配:根據Flink任務的CPU與記憶體需求比例選擇執行個體類型。

    • 預設情境:通用型執行個體。

    • CPU密集型任務:計算型執行個體。

    • 記憶體密集型任務:記憶體型執行個體。

  • 記憶體容量約束:節點記憶體規格 > Flink任務單JobManager或TaskManager的記憶體峰值。

資料服務情境

存算一體(HDFS)

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:NameNode、HMaster、Zookeeper。
  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 中小型叢集(≤ 16台執行個體):8核32 GiB。

  • 大型叢集:≥ 16核64 GiB。

  • 超大HDFS檔案數量(≥ 1000萬):規格要滿足NameNode記憶體需求。

Core

提供計算能力和儲存資源。
部署服務:DataNode、HRegionServer。

Core節點執行個體規格與業務請求量以及儲存量等因素有關。

  • 業務請求量:通用型執行個體,磁碟選擇雲端硬碟。

    • 小型叢集(≤ 8台執行個體):8核32 GiB,單台節點QPS ≤ 10000。

    • 中大型叢集:≥ 16核64 GiB,Core節點數量根據實際情況確定。

  • HDFS儲存量(> 10 TB/節點):巨量資料型執行個體。該機型使用本地碟儲存,可降低儲存成本,但需自主維護本地碟。

Task

僅提供計算能力,不儲存資料,主要用於補充Core節點在CPU和記憶體需求的不足。
部署服務:HRegionServer。

在資料服務情境中,由於資料存放區在Core節點,為保證資料本地性,通常不推薦使用Task節點。

存算分離(OSS-HDFS/OSS)

節點類型

推薦規格

Master

負責管理叢集和協調任務。
部署服務:NameNode、HMaster、Zookeeper。
  • 常規情境:通用型執行個體,磁碟選擇雲端硬碟。

  • 中小型叢集(≤ 16台執行個體):8核32 GiB。

  • 大型叢集:≥ 16核64 GiB。

Core

提供計算能力和儲存資源。
部署服務:DataNode、HRegionServer。

使用OSS-HDFS/OSS儲存HBase HLog對寫入效能有較大影響,推薦將HBase HLog儲存在HDFS上。

Core節點執行個體規格與業務請求量等因素有關,推薦通用型執行個體,磁碟空間 ≥ 500 GiB。

  • 小型叢集(≤ 8台執行個體):8核32 GiB,單台節點QPS ≤ 10000。

  • 中大型叢集:≥ 16核64 GiB,Core節點數量根據實際情況確定。

Task

提供計算能力。
部署服務:HRegionServer。

峰穀情境建議:

  • 固定Core節點 + 彈性Task節點模式。

  • Task節點規格與Core節點保持一致即可。

自訂叢集情境

當您的業務涉及離線ETL、即時ETL、複雜彙總分析及高並發查詢服務等多情境混合時:

  • 推薦採用多類型叢集組合方案:通過獨立部署不同特性的叢集(如離線批處理叢集、即時資料流處理叢集、分析型叢集及查詢加速叢集),實現資源隔離與情境適配,保障各類任務的效能與穩定性。

  • 如果業務規模較小且情境間資源需求無衝突,可以選擇自訂叢集:通過靈活配置降低部署複雜度並提升資源使用率。

存算一體(HDFS)

節點類型

推薦規格

Master

負責管理叢集和協調任務。
  • 小型叢集(≤ 8台執行個體):通用型執行個體8核32 GiB,磁碟選擇雲端硬碟。

  • 超大HDFS檔案數量(≥1000萬):規格要滿足NameNode記憶體需求。

Core

提供計算能力和儲存資源。

Core節點執行個體規格與業務類型以及資源需求等因素有關。

  • 業務類型匹配:根據叢集上任務的CPU與記憶體需求比例選擇執行個體類型。

    • 預設情境:通用型執行個體。

    • CPU密集型任務:計算型執行個體。

    • 記憶體密集型任務:記憶體型執行個體。

  • 儲存需求(> 10 TB/節點):巨量資料型執行個體。該機型使用本地碟儲存,可降低儲存成本,但需自主維護本地碟。

  • 記憶體容量約束:節點記憶體規格 > Max(Yarn任務單Container記憶體峰值 , Flink任務單JobManager或TaskManager的記憶體峰值)。

Task

僅提供計算能力,不儲存資料,主要用於補充Core節點在CPU和記憶體需求的不足。

峰穀情境建議:

  • 固定Core節點規格按低穀計算需求配置。

  • 彈性Task節點規格 ≥ Core節點規格以應對峰值需求。

存算分離(OSS-HDFS/OSS)

節點類型

推薦規格

Master

負責管理叢集和協調任務。

小型叢集(≤ 8台執行個體):通用型執行個體8核32 GiB,磁碟選擇雲端硬碟。

Core

功能與Task節點相似,不儲存資料。
  • 無需儲存資料時,推薦採用僅彈性Task節點方案,不配置Core節點。

  • 需要使用HBase服務:

    • 為保證寫入效能,推薦將HBase HLog儲存在HDFS上。

    • 規格:通用型執行個體16核64 GiB,磁碟空間 ≥ 500 GiB。

Task

提供計算能力。

不配置Core節點,只配置Task節點的情況:

  • 業務類型匹配:根據Flink任務的CPU與記憶體需求比例選擇執行個體類型。

    • 預設情境:通用型執行個體。

    • CPU密集型任務:計算型執行個體。

    • 記憶體密集型任務:記憶體型執行個體。

  • 記憶體容量約束:節點記憶體規格 > Max(Yarn任務單Container記憶體峰值 , Flink任務單JobManager或TaskManager的記憶體峰值)。

Core節點和Task節點都配置的情況,需要考慮峰穀情境:

  • 固定Core節點 + 彈性Task節點模式。

  • Task節點規格與Core節點保持一致即可。

網路設定建議

關鍵維度

配置建議

VPC網路設定

  • 預留足夠的IP地址資源:選擇合適的VPC和交換器,同時需要在規劃網段時預留好擴充空間。

  • 網路互連:需要規劃好與其他雲端服務的網路互連路徑。

安全性群組配置

  • 最小許可權原則:合理配置安全性群組規則,只開放必要的連接埠,將入站規則設定為僅允許可信IP地址或網路段的訪問,防止挖礦等攻擊。

  • 嚴格管控管理連接埠:針對SSH等管理連接埠需設定嚴格的存取控制,保證叢集安全。

網路連接配置

  • 提升網路效能:對於資料量大的情境,可以考慮使用內網頻寬大的執行個體。

  • 減少跨可用性區域流量:合理規劃叢集與資料來源之間的網路拓撲。

  • 外網存取控制:如果需要提供外網訪問能力,可以使用NAT Gateway或彈性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的執行個體類型,在大計算量的情境下,穩定性不夠,僅適用入門級學習,不推薦企業客戶使用。僅任務節點提供該執行個體類型。