更新时间:2024-12-11 GMT+08:00

开启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功能:

  1. (可选)服务端HMaster默认已开启并配置该特性,当节点上生效网卡除管理IP与业务IP挂载网卡外还存在其余网卡时,还需登录FusionInsight Manager界面,选择“集群 > 服务 > HBase > 配置 > 全部配置 > HMaster(角色) > 自定义”,在“hbase.hmaster.config.expandor”自定义参数中添加配置“hbase.status.multicast.ni.name”,值为挂载业务IP的网卡名称。
  2. 使用客户端安装用户登录安装了HBase客户端的节点。
  3. 在“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>

  4. 验证客户端是否成功开启Multicast功能。

    在HBase客户端开启读写任务,并确认读写的目标Region所在RegionServer。在读写任务执行过程中重启该RegionServer,观察客户端如果打印“ClusterStatusListener: There is a new dead server”关键字日志,即表示客户端成功开启Multicast功能。

    以验证hbase shell客户端执行的读写任务是否成功开启Multicast功能为例:

    1. 执行以下命令切换到客户端安装目录,配置环境变量并认证用户:

      cd HBase客户端安装目录

      source bigdata_env

      kinit 组件业务用户集群未启用Kerberos认证(普通模式)请跳过该操作)

    1. 执行以下命令登录HBase客户端,并创建表,写入数据后不要关闭HBase客户端。

      hbase shell

      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'

    2. 登录FusionInsight Manager,选择“集群 > 服务 > HBase”,单击“HMaster Web UI”右侧的“HMaster(主机名,主)”超链接进入HBase WebUI页面。
    3. 在“Tables”区域,单击“test_multicast”表名链接进入表页面,在“Table Regions”找到该表Region所在的RegionServer信息。
    4. 在FusionInisight Manager界面,选择“集群 > 服务 > HBase >实例”,勾选4.d查看到的RegionServerServer实例,选择“更多 > 重启实例”或“更多 > 滚动重启实例”,重启RegionServer实例。
    5. 观察hbase shell出现关键日志“client.ClusterStatusListener: There is a new dead server”,即为成功开启Multicast功能。