效能和形狀注意事項

Oracle Cloud Infrastructure上執行 Hadoop 有重大價格和效能考量。另外,也應考量您的需求如何影響部署資源配置。

比較分析

Oracle Cloud Infrastructure 同時提供有興趣在 Oracle Cloud 上執行 Hadoop 叢集之企業的效能和成本優點。

TeraSort 是 Hadoop 的一般指標,因為它利用叢集的所有元素 (運算、記憶體、儲存體、網路) 來產生、對應/減少及驗證隨機資料集。

一個位於 300 個 OCPU 的比較分析標準化Oracle Cloud Infrastructure 叢集,以及用於 HDFS 儲存體的區塊磁碟區。這特定分析發現Oracle Cloud Infrastructure 執行的速度較快、成本低於競爭對手之雲端的可熱化部署。

以下圖表示在標準化叢集大小執行此 10 Tb TeraSort 時,各種Oracle Cloud Infrastructure 資源配置的整體效能:


Comparison-terasort-phase-cpu.png 的描述請參見下方
Comparison-terasort-phase-cpu.png 圖解描述

Oracle Cloud Infrastructure 提供標準的裸機運算執行處理與 Intel 和 AMD CPU,以及特殊的 HPC 選項。由於圖表顯示,特殊的 HPC 叢集執行速度比 Intel 和 AMD counterparts 快,即使這些執行處理的核心計數較低。主要因為此叢集使用更多節點達到相同的標準化 OCPU 計數,這會直接影響整體 HDFS 聚總傳輸量,以增加效能。

HPC 資源配置也受益於 100-gbps 網路功能,可讓叢集內資料傳輸更快速。

下圖比較以 VM-based 工作者的效能與區塊磁碟區以及裸機 NVMe、執行 Cloudera 和標準化為叢集中 10 個工作節點:


Comparison son-terasort-vm-bm-performance.png 的描述請參見下方
Comparison-terasort-vm-bm-performance.png 圖解描述

績效從 8 到 16 個核心加速職工 VM 大小所取得的效能大小大約是有兩倍的效率,因為 VM 網路傳輸量是基礎實體 NIC 的分數共用。以本機 NVMe 的裸機優點也能明顯顯顯。叢集會利用與 25-Gbps 網路介面結合的本機 NVMe 儲存體高速度。

決定將在 Hadoop 叢集中運用哪些資源配置在 Hadoop ISVs 之間一致。

運算執行處理選項

本節提供選取每個節點角色的圖形時的最佳實務。

主要節點

主要節點僅適用於 Cloudera、Hortonworks 以及 Apache Hadoop 分佈。依照預設,MapR 不會從工作節點分隔叢集服務。實際上,Oracle 建議在主要節點上使用良好的記憶體密度,以支援叢集及服務管理的負荷。主要節點會執行 Zookeeper、NameNode、JournalNode、Resource Manager、HBase、Spark 以及叢集管理 (Cloudera Manager 和 Ambari) 服務。

  • 最小形狀:VM.Standard2.8
  • 建議的形狀:VM.Standard2.24

工作節點

所有 Hadoop ISVs 和 Apache 之間的工作節點均一致。適當地調整職工節點的形狀以符合工作負載需求。這同時適用於運算和記憶體需求,因為許多客戶要尋找聚總記憶體,以便與以走勢為基礎的工作負載搭配使用。傳統對映/減少工作負載也受益於工作節點上增加的記憶體空間。

  • 最小形狀:VM.Standard2.8
  • 建議的形狀:BM.DenseIO2.52

支援節點

支援的基礎架構包括可能執行輔助叢集服務或自訂應用程式程式碼的邊緣節點或其他節點。這些節點的需求取決於比例和使用案例。對於邊緣處理節點,我們建議 VM.Standard2.2. 的大小下限。根據每一邊緣節點的使用者數目來擴大此結果。我們建議在容錯域之間建立 HA 的多個邊緣節點,以及建立多個使用者與叢集互動的路徑。

網路注意事項

Hadoop 嚴重視叢集內流量的網路而定。因此,您為叢集拓樸中每個角色選擇部署的型態,會對叢集內部連線造成直接影響。

使用裸機型態時,運算主機可以使用完整 25-GB 虛擬網路介面卡 (vnic)。VM 資源配置會依據其運算大小調整規模。

當您使用區塊磁碟區來處理 HDFS 容量時,請記住區塊磁碟區的i/o流量與應用程式流量共用相同的 VNIC (預設)。使用裸機資源配置時最佳化的方法之一是在第二個實體介面上建立要用於叢集連線的次要 VNIC。這樣做僅保留區塊磁碟區流量的主要 VNIC,因此將網路使用最佳化。

下列圖表示範此概念:


Tecture-vnic.png 的描述請參見下方
Tecture-vnic.png 圖解描述

使用區塊磁碟區時,也可考慮聚總 HDFS i/o直接與每個工作者節點相關的區塊磁碟區數量和大小。為了達到所需的 HDFS 容量,Oracle 建議每個職工調整大量的磁碟區,而不要調整大量的磁碟區。

儲存體考量

對於 Hadoop 部署,可以將兩種類型的儲存體用於 HDFS 容量:具有本機 NVMe 和區塊磁碟區的 DenseIO 資源配置。對於 MapR 部署,除非您具有「資料分層」授權,否則必須對工作者節點 (同質) 選擇單一儲存類型。其他 Hadoop ISVs 支援異質的儲存 (混合 DenseIO NVMe 和區塊磁碟區),無需額外授權成本。

廠商支援的儲存組態

Cloudera 和 Hortonworks 支援Oracle Cloud Infrastructure 上的所有形式儲存體,以便與 Hadoop 搭配使用:

  • 在 DenseIO 資源配置上本機 NVMe
  • 區塊磁碟區
  • 物件儲存 (使用 S3 相容性)

Cloudera 支援由本機 NVMe 和 HDFS 區塊磁碟區組成之建置項目的資料分層 (異質儲存)。

MapR 部署可以運用 DenseIO 資源配置上的本機 NVMe 或區塊磁碟區來部署。

  • 物件儲存:請參閱 MapR XD 物件分層。
  • MapR 不支援異質的儲存體,無須使用額外的授權。
Oracle Cloud Infrastructure 上的所有形式儲存體都可搭配 Apache Hadoop 使用,包括運用 HDFS 連線器的物件儲存體。

DenseIO NVMe

DenseIO NVMe 是Oracle Cloud Infrastructure上 Hadoop 的最佳效能儲存選項。裸機和虛擬機器資源配置都提供用於 HDFS 的高速本機 NVMe 磁碟機。

使用本機 NVMe 時,Oracle 建議您將 DFS 複製設定為三個複本,以確保資料備援。

或者,對於 Cloudera 叢集,請考慮使用 erasure coding 提高特定類型資料的儲存效率。

區塊磁碟區

Oracle Cloud Infrastructure 上的區塊磁碟區為效能大的選項,提供 HDFS 容量的彈性組態。區塊磁碟區是網路連附的儲存體,因此它們使用I/o的 VNIC 頻寬。區塊磁碟區也會根據其設定的大小來調整 IOPS 和MB/s的規模 (每 GB)。個別區塊磁碟區的傳輸量最大可達 320 MB/秒,取得 700GB 或更大磁碟區。

下表顯示使用 700Gb 磁碟區之單一工作節點的傳輸量調整:

區塊磁碟區 聚總處理量 (GB/秒)
3 0.94
4 1.25
5 1.56
6 1.88
7 2.19
8 2.50
9 2.81
10 3.13
11 3.44

Oracle 發現在 11 個區塊磁碟區之後,新增額外的區塊磁碟區導致減少傳輸量收益。

當您使用 VM 作為工作者時,請記住區塊磁碟區流量與 Hadoop (應用程式) 流量共用相同的 VNIC。下表顯示選取的Oracle Cloud Infrastructure 資源配置建議的區塊磁碟區上限和量測的 VNIC 頻寬,讓執行處理可以有足夠的額外頻寬支援磁碟i/o頂端的應用程式流量:

Oracle Cloud Infrastructure 資源配置 VNIC 頻寬 HDFS 的建議最大區塊磁碟區數目
BM.DenseIO2.52 25Gbps 11
BM.Standard2.52 25Gbps 11
VM.Standard2.24 24.6Gbps 6
VM.Standard2.16 16.4Gbps 4
VM.Standard2.8 8.2Gbps 3

當您使用區塊磁碟區來處理 HDFS 容量時,建議您使用較大量的小型區塊磁碟區,而不要使用較小量的大型區塊磁碟區來達到 HDFS 目標容量。

以三個工作節點的最小值作為範例,顯示 HDFS 的 700gb 區塊磁碟區大小:


Block-volume-hdfs-capacity-chart.png 的描述請參見下方
Block-volume-hdfs-capacity-chart.png 圖解描述

請注意,每位職工的三個區塊磁碟區是最低需求。Oracle 建議您縮放區塊磁碟區數量和大小,以針對所需的 HDFS 容量進行最佳化,請知道每位工作者區的區塊容量會增加整體的 HDFS 頻寬。這對於需要更多叢集中之聚總I/o的大型高傳輸量工作負載特別重要。

永久叢集也十分重要,以免成長或重製額外負荷。

記錄日誌與應用程式資料

當您使用 HDFS 的區塊磁碟區時,必須保留部分區塊磁碟區,以與 Hadoop 日誌和應用程式資料 (Cloudera Parcels、NameNode 和 Journal 描述資料) 搭配使用。雖然可以展開作業系統磁碟區以適應此資料,但是最好使用專用區塊磁碟區來達成此目的。如果您想要變更主要節點的執行處理類型,區塊磁碟區可提供更多可攜性,而且如果您需要更多特定資料位置的I/o效能,請提供更有彈性。新增一些更多區塊磁碟區至執行處理,建立 RAID 陣列,而且當您有空備用磁碟區附件要使用時,移轉現有資料會變得更容易。

HDFS 也是一樣。增加更多區塊磁碟區的負荷比解除委任的工作者更容易、使用較大的磁碟重新建立、將磁碟加回叢集,以及重新平衡 HDFS。這兩種方法都有效;它只是您的叢集工作負載是否需要完整補充的區塊磁碟區來支援資料傳輸量。如果是這種情況,請考慮以更快的 NVMe 儲存體,以及使用具有資料分層的異質儲存體模型,將工作切換至裸機密集 IO 型態。

物件儲存

「物件儲存」可與所有 Hadoop ISVs (包括 Apache Hadoop) 整合。Oracle Cloud Infrastructure 有一個與 Apache Hadoop 相容的原生 HDFS Connector。Hadoop ISVs (Cloudera、Hortonworks 和 MapR) 清單允許物件儲存整合使用外部端點,而且必須使用 S3 相容性才能正確運作。

其中一個因果指的是 S3 相容性只適用於租用戶首頁區域。這表示對於與物件儲存整合完成的任何設定,Hadoop 叢集也應部署在相同 (本位目錄) 區域中。

另一個因此,當您使用物件儲存體將資料發送至叢集或取出叢集時,不會使用 HDFS 作為快取層。實際上,作業系統檔案系統是在物件儲存與 HDFS 之間轉換資料時,所快取的資料。如果大量資料在叢集 HDFS 和物件儲存之間往回移動,建議您在作業系統上建立區塊磁碟區快取層,以支援此資料移動。

下圖顯示支援 S3 資料移動的典型分割區圖,以及工作節點的資料分層。


Object-storage-partitioning-spread put.png 的描述請參見下方
Object-storage-partitioning-put.png 圖解描述

資料分層

您可以結合使用 Apache Hadoop、Cloudera 或 Hortonworks 建立健全的資料分層 (genous) 儲存體模型時,所有先前的儲存體選項。您也可以使用資料生命週期管理,將一個儲存體層的資料發送至另一個儲存體層,以將 HDFS 儲存體成本最佳化。


資料週期類型的描述。png 如下
Data-lifecycle-ting.png 圖解描述

結果編碼

至於 Hadoop 3.0,HDFS 建置上支援 erasure coding (EC)。使用單一複本透過同位儲存格擴大資料,EC 可以減少本機 HDFS 資料的儲存需求。HDFS 拓樸可以標記為 EC,以便在該標記位置儲存的任何資料上啟用此功能。如此可有效地減少輸出 HDFS 資料的原始儲存體需求,允許提高儲存體效率。

有一些與 EC 有關的注意事項:

  • 啟用 EC 時需要最小工作節點計數。
  • EC 標記資料的資料位置遺失。
  • EC 適合不常存取的中型檔案。這對小型檔案及經常存取的檔案沒有效率。
  • EC 會與傳統 (3x) 複製的類似資料相比,增加「名稱節點描述資料」中的區塊物件數目。
  • 復原 EC 資料需要從叢集計算 (同位重建)。此復原時間比傳統 (3x) 複製的資料長。

監督效能

Oracle Cloud Infrastructure Monitoring 服務可讓您使用「測量結果」和「警訊」功能,主動且密碼監督您的雲端資源。當您命中效能或容量臨界值時設定要通知的警示,是充分利用Oracle Cloud Infrastructure 原生工具來管理您的基礎架構。

參考架構

本主題提供每個 Hadoop ISV 的參考資料。下列參考架構與用料表反映Oracle Cloud Infrastructure上支援之 Hadoop 的廠商佈署所需最低限度。

作為開源專案,Apache Hadoop 部署沒有廠商提供的最低必要佈局。Oracle 建議您使用此處顯示的 Hortonworks 部署,作為最少 Apache 部署的合理指南。

Cloudera


Tecture-cloudera.png 的說明如下
Tecture-cloudera.png 圖解描述

使用 Cloudera 建置 Hadoop 的最低需求為:

角色 數量 建議的運算型態
邊緣 1 VM.Standard2.4
Cloudera Manager 1 VM.Standard2.16
主要節點 2 VM.Standard2.16
工作節點 3 BM.DenselO2.52

在此最低部署中,Cloudera Manager 節點也會執行主要服務。

您必須讓您自己的授權在Oracle Cloud Infrastructure上部署 Cloudera;所有軟體支援均透過 Cloudera。

Hortonworks


Tecture-hortonwork .png 的描述請參見下方
Construct e-hortonwork .png 圖解描述

使用 Hortonworks 建置 Hadoop 的最低需求如下:

角色 數量 建議的運算型態
邊緣 1 VM.Standard2.4
安巴特 1 VM.Standard2.16
主要節點 2 VM.Standard2.16
工作節點 3 BM.DenselO2.52

在這個最小的部署中,Ambari 節點也會執行主要服務。

您必須要有自己的授權,才能在Oracle Cloud Infrastructure上建置 Hortonworks;所有軟體支援均經由 Hortonworks。

MapR


Tecture-mapr.png 的描述請參見下方
Tecture-mapr.png 圖解描述

使用 MapR 建置 Hadoop 的最低需求為:

角色 數量 建議的運算型態
邊緣 1 VM.Standard2.4
資料節點 3 BM.DenselO2.52

您必須擁有自己的授權,才能在Oracle Cloud Infrastructure上部署 MapR;所有軟體支援均透過 MapR。

Terraform 部署

您可以在此解決方案的「下載程式碼」區段中找到每個 Hadoop ISV 的 Terraform 樣板。

Cloudera 和 Hortonworks 儲存區域具有 Oracle 資源管理相容的範本。請注意,這些是「資源管理程式」特定的。基礎 (主要) 分支包含獨立 Terraform 樣板。Cloudera 和 Hortonworks 的「資源管理程式」樣板也包含 YAML 綱要,可輕鬆填入每個樣板的 Terraform 變數。這樣可針對變數提供下拉式 UI 選擇,您可以針對使用案例自訂這些變數,基本上就會使用允許的形狀選項和安全/組態設定值來填入每個樣板。