HBase的硬件要求

时间:2020-02-23 14:33:29  来源:igfitidea点击:

HBase是一种强大而灵活的技术,但随附这种灵活性是要求正确配置和调整的要求。
它是一些用于配置HBase集群的一般教程的时间。
"里程"可能会有所不同,具体取决于Regionservers的特定计算要求(例如,自定义协处理器)和其他应用程序,我们可以选择在群集上共同定位。

regionservers.

配置Regionservers时的第一个诱惑是为一些高端企业系统提供大量现金。
不要这样做! HBase通常在普通的Vanilla商品X86服务器上部署。

现在,不要将该声明作为部署最便宜,低质量服务器的许可证。
是的,HBase旨在从节点故障中恢复,但可用性在恢复期间会遭受,因此硬件质量和冗余确实重要。

冗余电源以及冗余网络接口卡是生产部署的一个好主意。
通常,组织选择两个具有四到六个核心的套接字机器。

第二种诱惑抵御正在配置服务器,具有最大的存储和内存容量。
公共配置将包括从6到12 Tbrytes(TB)的磁盘空间和48到96千兆字节(GB)的RAM。
磁盘的RAID控制器是不必要的,因为HDFS在磁盘失败时提供数据保护。

HBase需要从Java堆分配的读写缓存。
当我们读取关于HBase配置变量时,请记住此语句,因为我们可以看到Regionserver的磁盘容量和RegionServer的Java HeaP之间存在直接关系。
查看关于HBase RegionServer内存大小的良好讨论。

文章指出,通过沿着此公式估算原始磁盘空间与Java堆的比率:

RegionSize divided by Memstoresize multiplied by HDFS Replication Factor multiplied by HeapFractionForMemstores

使用默认的HBase配置变量提供此比率:

10GB/128MB * 3 * 0.4 = Ratio of 96MB disk space : 1 MB Java heap space.

前面的线相当于每个RegionServer的原始磁盘容量的3TB,其中32GB RAM分配给Java堆。

然后,我们最终结束的是每个Regionserver的1derabyte,因为默认的HDFS复制因子为3.在每个节点的数据库存储方面仍然令人印象深刻,但由于商品服务器通常可以容纳8个或者更多的驱动器容量为2到4件件。

截至本写作的总体问题是当前Java虚拟机(JVM)努力提供有效的内存管理(垃圾收集,精确),大堆空间(例如,空间大于32GB)。

是的,有我们可以使用的垃圾收集调整参数,我们应该检查JVM供应商以确保我们拥有最新选项,但我们将无法在此时使用它们。

内存管理问题最终将被解决,但现在需要知道我们可能会遇到问题,如果HBASE存储要求在数百TB的范围内超过PBYBYTE。
我们可以轻松增加到20GB以达到6TB原始和2TB可用。

例如,我们可以做出其他调整(减少读取重型工作负载的Memstore大小),但我们不会在可用空间中跳出幅度跳线,直到我们有一个JVM,有效地处理垃圾收集。

我们可以在JVM垃圾收集问题周围找到方法,但解决方案是新的,并且尚未成为此写作的主要HBase分布的一部分。

主服务器

MasterServer不会像Regionservers那样消耗系统资源。
但是,我们应该提供硬件冗余,包括RAID以防止系统故障。
对于良好的衡量标准,还将备份MasterServer配置为群集中。
公共配置是4个CPU内核,8GB和16GB之间的RAM,1千兆以太网是常用配置。
如果我们共同定位MasterServers和ZooKeeper节点,则建议16GB RAM。

Zookeeper.

与MasterServer一样,ZooKeeper不需要大量的硬件配置,但Zookeeper不得阻止(或者需要竞争)系统资源。
Zookeeper,它是HBase群集的协调服务,位于客户端的数据路径中。
如果ZooKeeper无法完成其工作,将发生超时 - 并且结果可能是灾难性的。

ZooKeeper硬件要求与MasterServer相同,但应为该过程提供专用磁盘。
对于小群集,我们可以使用主服务器共同定位ZooKeeper,但请记住,ZooKeeper需要在准备就绪时运行足够的系统资源。