开启HBase Multicast功能
HBase Multicast特性涉及Publisher(HMaster)以及Listener(客户端)两个角色,通过设置配置“hbase.status.published”值为“true”开启。MRS 3.5.0及之后版本,Publisher端默认开启了该特性。
Multicast特性开启时,Publisher将观测当前RegionServer存活情况,当出现Dead RegionServer时,广播发送Dead RegionServer信息到广播地址。配置了监听该广播地址的Listener将接收到Dead RegionServer的信息,并自动剔除客户端建立的Connection中该Dead RegionServer上的Region位置缓存信息,在下次访问这部分Region时拉取最新的位置信息,实现业务侧及时识别故障RegionServer,并更新Region位置信息缓存。
开启HBase Multicast功能
当前仅支持IPv4 Linux/Unix环境下HBase客户端配置开启Multicast功能,客户端与HMaster节点业务IP的网络通信需正常。请根据业务实际情况执行以下操作开启Multicast功能:
- (可选)服务端HMaster默认已开启并配置该特性,当节点上生效网卡除管理IP与业务IP挂载网卡外还存在其余网卡时,还需登录FusionInsight Manager界面,选择“集群 > 服务 > HBase > 配置 > 全部配置 > HMaster(角色) > 自定义”,在“hbase.hmaster.config.expandor”自定义参数中添加配置“hbase.status.multicast.ni.name”,值为挂载业务IP的网卡名称。
- 使用客户端安装用户登录安装了HBase客户端的节点。
- 在“HBase客户端安装目录/HBase/hbase/conf/hbase-site.xml”中新增并配置表1中的参数以开启客户端的Multicast功能。
表1 开启客户端Multicast功能参数配置 参数名称
参数描述
参数值
hbase.status.published
设置该参数值为“true”,客户端即可开启Multicast功能。
true
hbase.status.multicast.address.ip
Multicast特性使用的广播地址。IPv4场景下使用的广播地址为“226.1.1.3”。
226.1.1.3
hbase.status.multicast.bind.address.ip
客户端Listener绑定监听的广播地址,Linux/Unix场景需与广播地址一致。
226.1.1.3
hbase.status.multicast.ni.name
节点存在多网卡时,需配置该参数值为业务IP使用的网卡名称。单网卡节点时该配置为可选配置。
-
参数配置如下:
<property> <name>hbase.status.published</name> <value>true</value> </property> <property> <name>hbase.status.multicast.address.ip</name> <value>226.1.1.3</value> </property> <property> <name>hbase.status.multicast.bind.address.ip</name> <value>226.1.1.3</value> </property>
- 验证客户端是否成功开启Multicast功能。
在HBase客户端开启读写任务,并确认读写的目标Region所在RegionServer。在读写任务执行过程中重启该RegionServer,观察客户端如果打印“ClusterStatusListener: There is a new dead server”关键字日志,即表示客户端成功开启Multicast功能。
以验证hbase shell客户端执行的读写任务是否成功开启Multicast功能为例:
- 执行以下命令切换到客户端安装目录,配置环境变量并认证用户:
source bigdata_env
kinit 组件业务用户(集群未启用Kerberos认证(普通模式)请跳过该操作)
- 执行以下命令登录HBase客户端,并创建表,写入数据后不要关闭HBase客户端。
create 'test_multicast',‘f1’
put 'test_multicast'.'row1','f1:q','value1'
put 'test_multicast'.'row2','f1:q','value2'
put 'test_multicast'.'row3','f1:q','value3'
- 登录FusionInsight Manager,选择“集群 > 服务 > HBase”,单击“HMaster Web UI”右侧的“HMaster(主机名,主)”超链接进入HBase WebUI页面。
- 在“Tables”区域,单击“test_multicast”表名链接进入表页面,在“Table Regions”找到该表Region所在的RegionServer信息。
- 在FusionInisight Manager界面,选择“集群 > 服务 > HBase >实例”,勾选4.d查看到的RegionServerServer实例,选择“更多 > 重启实例”或“更多 > 滚动重启实例”,重启RegionServer实例。
- 观察hbase shell出现关键日志“client.ClusterStatusListener: There is a new dead server”,即为成功开启Multicast功能。
- 执行以下命令切换到客户端安装目录,配置环境变量并认证用户: