跳到主要内容

145、HBase容量规划

HBase容量规划

在设计分布式系统部署时,必须执行一些基本的数学严谨性,以确保在给定系统的数据和软件要求的情况下有足够的计算能力。对于此功能,在估计某些备份和还原实施的性能时,网络容量的可用性是最大的瓶颈。第二个最昂贵的功能是可以读/写数据的速度。

完全备份

要估计完整备份的持续时间,我们必须了解调用的一般操作:

  • 每个RegionServer上的预写日志滚动:每个RegionServer并行运行几十秒。相对于每个RegionServer的负载。
  • 获取表格的HBase快照:几十秒。相对于构成表的区域和文件的数量。
  • 将快照导出到目标:请参阅下文。相对于数据的大小和到到目标的网络带宽。

为了估计最后一步将花费多长时间,我们必须对硬件做出一些假设。请注意,这些对您的系统来说并不准确 – 这些是您或您的管理员为您的系统所知的数字。假设在单个节点上从HDFS读取数据的速度上限为80MB / s(在该主机上运行的所有Mapper上),现代网络接口控制器(NIC)支持10Gb / s,架顶式交换机可以处理40Gb / s,集群之间的WAN为10Gb / s。这意味着您只能以1.25GB / s的速度将数据发送到远程控制器 – 这意味着参与ExportSnapshot的16个节点(1.25 * 1024 / 80 = 16)应该能够完全饱和集群之间的链接。由于群集中有更多节点,我们仍然可以使网络饱和,但对任何一个节点的影响较小,这有助于确保本地SLA。如果快照的大小是10TB,这将完全备份将花费2.5小时(10 * 1024 / 1.25 / (60 * 60) = 2.23hrs)

作为一般性声明,本地群集与远程存储之间的WAN带宽很可能是完全备份速度的最大瓶颈。

当考虑将备份的计算影响限制为“生产系统”时,可以使用可选的命令行参数对hbase backup create: -b、-w、-q进行重用。该-b选项定义每个worker(Mapper)写入数据的带宽。该-w参数限制了在DistCp作业中生成的工作者数量。该-q允许指定的YARN队列可以可以限制生成worker的特定节点——这可以隔离备份工人执行复制到一组非关键节点。将-b和-w选项与前面的公式关联起来:-b用于限制每个节点读取80MB/s的数据,-w用于限制作业产生16个worker任务。

增量备份

就像我们为完整备份所做的那样,我们必须了解增量备份过程,以估计其运行时间和成本。

  • 识别自上次完全备份或增量备份以来的新预写日志:可忽略不计。来自备份系统表的Apriori知识。
  • 读取,过滤和写入“最小化”HFile相当于WAL:以写入数据的速度为主。相对于HDFS的写入速度。
  • 将HFiles分配到目的地:见上文。

对于第二步,该操作的主要成本是重写数据(假设WAL中的大部分数据被保留)。在这种情况下,我们可以假设每个节点的聚合写入速度为30MB / s。继续我们的16节点集群示例,这将需要大约15分钟来执行50GB数据(50 * 1024/60/60 = 14.2)的此步骤。启动DistCp MapReduce作业的时间可能会占据复制数据所需的实际时间(50 / 1.25 = 40秒)并且可以忽略。