Ambari—HBase配置HBase Master HA(三)

HBase HA高可用性介绍

从架构上看,HBase从一开始就有了强大的一致性保证。所有的读写操作都通过一个RegionServer进行路由,这可以确保所有写操作按顺序进行,所有读操作都可访问最近提交的数据。

但是,由于读取到单个位置的这种“single homing”,如果服务器变得不可用,则RegionServer中托管的表区域将在一段时间内不可用,直到恢复为止。区域恢复过程分为三个阶段:检测,分配和恢复。其中,检测阶段通常是最长的,根据ZooKeeper会话超时设置(如果RegionServer变得不可用但ZooKeeper会话存在),目前大约为20到30秒。之后,我们从Write Ahead Log中恢复数据并将该区域分配给不同的服务器。在此期间 - 直到恢复完成 - 客户端无法读取该区域的数据。

对于一些使用情况,数据可能是只读的,或者读取一些过时的数据是可以接受的。通过timeline-consistent的高可用性读取,HBase可以用于这类对延迟敏感的应用,这些应用可能会在读取完成时产生时间限制。

为了实现读取的高可用性,HBase提供了一个称为“区域复制”的功能。在此模型中,对于表的每个区域,可以有多个副本在不同的RegionServers中打开。默认情况下,区域复制设置为1,因此只部署单个区域副本,并且原始模型没有任何更改。如果区域复制设置为2或更多,则主服务器会分配表的区域副本。负载平衡器确保区域副本不共同托管在同一个RegionServers中,并且也位于同一个机架中(如果可能)。

所有单个区域的副本都有一个唯一的副本ID,从0开始。具有副本ID = 0的区域副本称为“主要区域”。其他人被称为“次要地区副本”或“secondaries”。只有主区域可以接受来自客户端的写入,并且主区域始终包含最新的更改。由于所有写入操作都必须通过主要区域,写入操作的可用性并不高(这意味着如果区域不可用,它们可能会被阻塞一段时间)。

例如,在以下图像中,RegionServer 1负责响应查询并扫描密钥10到40。如果RegionServer 1崩溃,则持有密钥10-40的区域在短时间内不可用,直到该区域恢复。

Ambari—HBase配置HBase Master HA(三)_第1张图片

即使RegionServer 1不可用,HA也提供访问密钥10-40的方法,方法是托管该区域的副本并将区域副本分配给其他Region Server作为备份。在下图中,RegionServer 2承载密钥10-20的辅助区域副本,RegionServer 3承载密钥20-40的辅助区域副本。RegionServer 2还托管密钥80-100的辅助区域副本。辅助副本没有单独的RegionServer进程。相反,RegionServers可以在主要或次要模式下为区域提供服务。当RegionServer 2服务查询和扫描密钥10-20时,它在次要模式下工作。

Ambari—HBase配置HBase Master HA(三)_第2张图片

注意

以次要模式工作的区域也称为次要区域副本。但是,没有单独的RegionServer进程。处于辅助模式的区域可以读取但不能写入数据。另外,它返回的数据可能是陈旧的,如以下部分所述。

Timeline和强大的数据一致性
HBase保证从服务器在二级模式下服务的所有数据的timeline一致性,这意味着所有的HBase客户端都以相同的顺序看到相同的数据,但这些数据可能会稍微陈旧。
只有主要的RegionServer保证有最新的数据。Timeline一致性简化了复杂HBase查询的编程逻辑,并提供了比quorum-based的一致性更低的延迟。

相比之下,强大的数据一致性意味着最新的数据始终得到服务。但是,强大的数据一致性可以大大增加RegionServer发生故障时的等待时间,因为只有主要RegionServer保证具有最新数据。HBase API允许应用程序开发人员指定查询所需的数据一致性。

[注意] 注意

HBase API包含一个名为的方法Result.isStale(),该方法指示在secondary模式下返回的数据是否为“过时” - 数据尚未使用对主要RegionServer的最新写入操作进行更新。

3、HBase

将一个Secondary HBase Master添加到新群集

(1)安装HBase时,请单击现有HBase Master名称右侧显示的“+”号,以添加并选择要部署a secondary HBase Master的节点:

 

将新的HBase Master主机添加到现有群集

1)以集群管理员身份登录到Ambari管理界面。

2)在Web主页面中,浏览Services > HBase

3)在Service Actions中,单击 + Add HBase Master

4)选择要安装的HBase master主机; 然后点击Confirm Add

Ambari安装新的HBase Master并重新配置HBase以管理多个Master实例。

如果HBase启动RegsionServers报错:Operation category READ is not supported in state standby

参考个人类似解决办法:http://blog.csdn.net/zhouyuanlinli/article/details/79396829


你可能感兴趣的:(HBase,大数据—周源)