在建立阿里雲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節點不支援Auto Scaling能力,推薦僅使用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。節點數量根據業務需求Auto Scaling。 |
即時資料流情境
存算一體(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節點不支援Auto Scaling能力,推薦僅使用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的執行個體類型,在大計算量的情境下,穩定性不夠,僅適用入門級學習,不推薦企業客戶使用。僅任務節點提供該執行個體類型。 |