選擇配置合適的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。

EMR節點

EMR有3種執行個體類型:主執行個體節點(Master)、核心執行個體節點(Core)和計算執行個體節點(Task)。

EMR儲存可以採用高效雲端硬碟、SSD雲端硬碟和本地碟。磁碟效能為SSD雲端硬碟>本地碟>高效雲端硬碟。

EMR底層儲存支援OSS(僅標準型OSS)和HDFS。OSS相對HDFS資料可用性更高,OSS的資料可用性為99.99999999%,HDFS為99.99999%。

儲存價格大致估算如下:

  • 本地碟執行個體儲存為0.003$/GB/月
  • OSS標準型儲存為0.02$/GB/月
  • 高效雲端硬碟儲存為0.05$/GB/月
  • SSD雲端硬碟儲存為0.143$/GB/月

EMR選型

Master節點選型

Master節點主要部署Hadoop的Master進程,如NameNode、ResourceManager等。

生產叢集建議開啟高可用HA,E-MapReduce的HDFS、YARN、Hive、HBase等組件均已實現HA。生產叢集建議在“節點配置”位置開啟高可用。如果購買時不開啟高可用,叢集將無法在後續使用過程中開啟高可用功能。

Master節點主要用來儲存HDFS元資料和組件Log檔案,屬於計算密集型,對磁碟IO要求不高。HDFS中繼資料存放區在記憶體中,建議根據檔案數量選擇16GB以上記憶體空間。

Core節點選型

Core節點主要用來儲存資料和執行計算的節點,運行DataNode、Nodemanager。

HDFS(3備份)資料量大於60TB,建議採用本地碟執行個體(ECS.D1,ECS.D1NE),本地碟的磁碟容量為:(CPU核心數/2)*5.5TB*執行個體數量,如購買4台8核D1執行個體,磁碟容量為:8/2*5.5*4台=88TB。因為HDFS採用3備份,所以本地碟執行個體最少購買3台,考慮到資料可靠性和磁碟損壞因素,建議最少購買4台。

HDFS資料量小於60TB,可以考慮高效雲端硬碟和SSD雲端硬碟。

Task節點選型

Task節點主要用來補充Core節點CPU和記憶體計算能力的不足,節點並不儲存資料,不運行DataNode,使用者可以根據CPU和記憶體需求的估算執行個體個數。

EMR生命週期

EMR支援彈性擴充,可以快速的擴容,靈活調整叢集節點配置,或者對節點ECS升降配

可用性區域選擇

為保證效率,EMR最好與業務系統部署在同一地區的同一個可用性區域