性能和形状注意事项

Oracle Cloud Infrastructure上运行 Hadoop 时存在大量价格和性能考虑事项。此外,还应考虑您的要求如何影响部署形状。

比较分析

Oracle Cloud Infrastructure 为在 Oracle Cloud 上运行 Hadoop 集群时感兴趣的企业提供了性能和成本优势。

TeraSort 是一种针对 Hadoop 的通用基准,因为它利用了集群的所有元素(计算、内存、存储和网络)来生成、映射/减少和验证随机数据集。

一个比较分析规范化的Oracle Cloud Infrastructure 集群(300 OCPU),并针对 HDFS 存储使用了块存储卷。该特定分析发现Oracle Cloud Infrastructure 运行三次,提供的成本比竞争对手云中可优化部署的成本低 80%。

下图展示了在规范化集群大小下运行此 10Tb TeraSort 时各种Oracle Cloud Infrastructure 配置的整体性能:


后面是 comparison-terasort-phase-cpu.png 的说明
插图 comparison-terasort-phase-cpu.png 的说明

Oracle Cloud Infrastructure 提供带有 Intel 和 AMD CPU 的标准裸金属计算实例,以及专用 HPC 选项。如图所示,专用 HPC 集群的运行速度比 Intel 和 AMD 对应的运行速度快,即使这些实例的核心计数较低。此结果主要发生,因为此集群使用更多节点来实现相同的规范化 OCPU 计数,这会直接影响整体 HDFS 聚合吞吐量,从而提高性能。

HPC 配置还可以利用 100 英镑网络能力,这可以更快地传输集群内数据。

下图将基于 VM 的员工与块存储卷和裸金属 NVMe 的绩效进行比较,运行 Cloudera 并将其规范化为群集中的 10 个 Worker 节点:


后面是 comparison-terasort-vm-bm-performance.png 的说明
插图 comparison-terasort-vm-bm-performance.png 的说明

由于 VM 网络吞吐量是底层物理 NIC 的小数份额,因此性能提高了从 8 到 16 个核心增加了两倍,这会更有意义。具有本地 NVMe 的裸金属优势也很明显。集群利用本地 NVMe 存储的高速组合了 25-Gbps 网络接口。

确定在 Hadoop 集群中进行计算的配置在 Hadoop ISv 之间是一致的。

计算实例选择

本节在为每个节点角色选择配置时提供了最佳做法。

主体节点

主节点仅适用于 Cloudera、Hortonworks 和 Apache Hadoop 分发。默认情况下,MapR 不会将集群服务从 Worker 节点隔离。实际上,Oracle 建议在主节点上使用良好的内存密度来支持群集和服务管理的开销。主节点运行 Zookeeper、NameNode、JournalNode、Resource Manager、HBase、Spark 和集群管理(Cloudera Manager 和 Ambari)服务。

  • 最小配置:VM.Standard2.8
  • 建议的形状:VM.Standard2.24

工作人员节点

所有 Hadoop ISv 和 Apache 之间的员工节点均一致。适当地扩展员工节点的配置以满足工作量要求。这适用于计算和内存需求,因为许多客户都要查找可与基于备件的负载一起使用的聚合内存。传统地图/减少工作负荷也可以受益于在员工节点上增加的内存覆盖区。

  • 最小配置:VM.Standard2.8
  • 建议的形状:BM.DenseIO2.52

支持节点

支持基础结构包括可能正在运行辅助集群服务或定制应用程序代码的维边节点或其他节点。这些节点的要求因规模和用例而异。对于维边节点 , 我们建议最小大小的 VM.Standard2.2.根据每个维边节点的用户数进行扩展。建议在故障域之间使用多个边缘节点,以及为用户创建多种路径来与集群进行交互。

网络注意事项

Hadoop 大量取决于集群内流量的网络。因此,您选择为集群拓扑中的每个角色部署的配置对集群内连接都有直接影响。

使用裸金属配置时,计算主机可以使用全部 25-GB 虚拟网络接口卡(vnic)。VM 配置相对于其计算大小进行缩放。

将块存储卷用于 HDFS 容量时,请记住块存储卷的i/o流量与应用程序流量共享同一 VNIC(默认情况下)。使用裸金属配置时优化这一点的一种方法是创建辅助 VNIC 以用于第二个物理接口上的群集连接。这会为只块存储卷通信保留主要 VNIC,从而优化网络利用率。

下图演示了此概念:


后面是 Architecture e-vnic.png 的说明
插图 Architecture e-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 集群,可以考虑使用纠删码来提高特定类型数据的存储效率。

块存储卷

Oracle Cloud Infrastructure 上的块存储卷是一个高性能选项,它提供了对 HDFS 容量的灵活配置。块存储卷是网络连接的存储,因此它们为I/o使用 VNIC 带宽。块存储卷也基于为其配置的大小(每 GB)扩展 IOPS 和MB/秒。单个块存储卷吞吐量最大值为 320 MB/s(对于 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 目标容量。

以最小三个 Worker 节点为例,其中 700GB 块存储卷大小为 HDFS:


后面是 block-volume-hdfs-capacity-chart.png 的说明
插图 block-volume-hdfs-capacity-chart.png 的说明

请注意,每位员工三个块存储卷是最低要求。Oracle 建议扩展块存储卷数量和大小以针对所需的 HDFS 容量进行优化,确定每位员工更多的块存储卷会增加可用的整体聚合 HDFS 带宽。对于需要集群中更聚集的I/o的大型高吞吐量工作负荷,这尤其重要。

持久性集群也非常重要,以增长或重构增加开销。

记录和应用程序数据

为 HDFS 使用块存储卷时,需要保留一些块存储卷以用于 Hadoop 日志和应用程序数据(Cloudera Parcels、NameNode 和日志元数据)。虽然可以扩展 OS 卷以容纳此数据,但最好为此目的使用专用块存储卷。使用块存储卷,如果您希望更改主体节点的实例类型,并且对特定数据位置需要更多I/o性能,则可以更好地移植。在实例中添加更多的块存储卷,创建 RAID 阵列,当有备件卷附加要使用时,迁移现有数据更容易。

HDFS 也是如此。增加更多块存储卷会比停用员工更容易,使用更大的磁盘重建这些卷,将其添加回集群中以及重新平衡 HDFS。这两种方法都有效;它只是集群工作量是否需要完全补充的块存储卷来支持数据吞吐量。如果是这种情况,请考虑使用 NVMe 存储更快的速度将员工切换到裸金属密集 IO 配置,以及通过数据分层使用异构存储模型。

对象存储

对象存储与所有 Hadoop ISv 集成,包括 Apache Hadoop。Oracle Cloud Infrastructure 具有与 Apache Hadoop 兼容的本机 HDFS 连接器。Hadoop ISVs(Cloudera、Hortonworks 和 MapR)列出对象存储集成允许的外部端点,并且需要使用 S3 兼容性以便对象存储集成正常工作。

一个卡路径是 S3 兼容性只能用于租户主页区域。这意味着,对于与对象存储完成的任何集成,还应该在同一(主目录)区域中部署 Hadoop 集群。

另一注意:使用对象存储将数据推送或从群集中拉出数据时,HDFS 不用作高速缓存层。事实上,操作系统文件系统是在对象存储和 HDFS 之间处理数据时对其进行高速缓存的位置。如果大量数据在群集 HDFS 和对象存储之间来回移动,建议在 OS 上创建块存储卷高速缓存层以支持此数据移动。

下图显示了一个典型的分区图表,用于支持 S3 数据移动以及员工节点的数据分层。


后面是 object-storage-partitioning-throughput.png 的说明
插图 object-storage-parting-throughput.png 的说明

数据分层

使用 Apache Hadoop、Cloudera 或 Hortonworks 创建强大的数据分层(异构)存储模型时,可以组合所有前面的存储选项。您还可以使用数据生命周期管理将数据从一个存储层推送到另一个存储层以消耗数据,从而优化 HDFS 存储成本。


后面是数据传递者的说明。png
插图 data ifecycle-ting.png 的说明

生命编码

自 Hadoop 3.0起,HDFS 部署支持删除编码(EC)。EC 通过存储由奇偶校验单元增加的单个副本来减少本地 HDFS 数据的存储需求。HDFS 拓扑可标记为 EC,这样便可针对存储在该标记位置中的任何数据启用此功能。这可以有效地降低 EC-tagged 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


后面是体系结构 e-cloudera.png 的说明
插图 Architecture e-cloudera.png 的说明

使用 Cloudera 部署 Hadoop 的最低要求为:

角色 数量 建议的计算配置
边缘 1 VM.Standard2.4
Cloudera 管理器 1 VM.Standard2.16
主体节点 2 VM.Standard2.16
Worker 节点 3 BM.DenselO2.52

在这最少的部署中,Cloudera 管理器节点也运行主要服务。

您必须自带许可证才能在Oracle Cloud Infrastructure上部署 Cloudera;所有软件支持都通过 Cloudera 进行部署。

临时工


后面是体系结构和工作版本的说明
插图 archie-hortonworks.png 的说明

使用 Hortonworks 部署 Hadoop 的最低要求为:

角色 数量 建议的计算配置
边缘 1 VM.Standard2.4
流行说明 1 VM.Standard2.16
主体节点 2 VM.Standard2.16
Worker 节点 3 BM.DenselO2.52

在这种最小的部署中,不活动节点还运行主要服务。

您必须自带许可证才能在Oracle Cloud Infrastructure上部署起始日期和工作;所有软件支持都通过家庭工作进行部署。

MapR


后面是 Architecture e-mapr.png 的说明
插图 archiArchitecture e-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 选择,可以为您的用例定制此项,实际上是使用允许的形状选项和安全性/配置设置填充每个模板。