更新时间:2023-03-17 GMT+08:00

从零开始使用HBase

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。本章节提供从零开始使用HBase的操作指导,在集群Master节点中更新客户端,通过客户端实现创建表,往表中插入数据,修改表,读取表数据,删除表中数据以及删除表的功能。

背景信息

假定用户开发一个应用程序,用于管理企业中的使用A业务的用户信息,使用HBase客户端实现A业务操作流程如下:

  • 创建用户信息表user_info。
  • 在用户信息中新增用户的学历、职称信息。
  • 根据用户编号查询用户姓名和地址。
  • 根据用户姓名进行查询。
  • 用户销户,删除用户信息表中该用户的数据。
  • A业务结束后,删除用户信息表。
表1 用户信息

编号

姓名

性别

年龄

地址

12005000201

A

19

A城市

12005000202

B

23

B城市

12005000203

C

26

C城市

12005000204

D

18

D城市

12005000205

E

21

E城市

12005000206

F

32

F城市

12005000207

G

29

G城市

12005000208

H

30

H城市

12005000209

I

26

I城市

12005000210

J

25

J城市

前提条件

已安装客户端,例如安装目录为“/opt/client”。以下操作的客户端目录只是举例,请根据实际安装目录修改。在使用客户端前,需要先下载并更新客户端配置文件,确认Manager的主管理节点后才能使用客户端。

操作步骤

MRS 3.x以前版本集群执行以下操作:

  1. 下载客户端配置文件。

    1. 登录MRS Manager页面,具体请参见访问集群Manager,然后选择“服务管理”。
    2. 单击“下载客户端”

      “客户端类型”选择“仅配置文件”“下载路径”选择“服务器端”,单击“确定”开始生成客户端配置文件,文件生成后默认保存在主管理节点“/tmp/MRS-client”。文件保存路径支持自定义。

  2. 登录MRS Manager的主管理节点。

    1. 在集群详情的“节点信息”页签中查看节点名称,名称中包含“master1”的节点为Master1节点,名称中包含“master2”的节点为Master2节点。

      MRS Manager的主备管理节点默认安装在集群Master节点上。在主备模式下,由于Master1和Master2之间会切换,Master1节点不一定是MRS Manager的主管理节点,需要在Master1节点中执行命令,确认MRS Manager的主管理节点。命令请参考2.d

    2. root用户使用密码方式登录Master1节点。
    3. 切换至omm用户。

      sudo su - root

      su - omm

    4. 执行以下命令确认MRS Manager的主管理节点。

      sh ${BIGDATA_HOME}/om-0.0.1/sbin/status-oms.sh

      回显信息中“HAActive”参数值为“active”的节点为主管理节点(如下例中“mgtomsdat-sh-3-01-1”为主管理节点),参数值为“standby”的节点为备管理节点(如下例中“mgtomsdat-sh-3-01-2”为备管理节点)。

      Ha mode
      double
      NodeName              HostName                      HAVersion          StartTime                HAActive             HAAllResOK           HARunPhase 
      192-168-0-30          mgtomsdat-sh-3-01-1           V100R001C01        2021-11-18 23:43:02      active               normal               Actived    
      192-168-0-24          mgtomsdat-sh-3-01-2           V100R001C01        2021-11-21 07:14:02      standby              normal               Deactived
    5. 使用root用户登录MRS Manager的主管理节点,例如“192-168-0-30”节点,并执行以下命令切换到omm用户。

      sudo su - omm

  3. 执行以下命令切换到客户端安装目录,例如“/opt/client”

    cd /opt/client

  4. 执行以下命令,更新主管理节点的客户端配置。

    sh refreshConfig.sh /opt/client 客户端配置文件压缩包完整路径

    例如,执行命令:

    sh refreshConfig.sh /opt/client /tmp/MRS-client/MRS_Services_Client.tar

    界面显示以下信息表示配置刷新更新成功:

    ReFresh components client config is complete.
    Succeed to refresh components client config.

  5. 在Master节点使用客户端。

    1. 在已更新客户端的主管理节点,例如“192-168-0-30”节点,执行以下命令切换到客户端目录。

      cd /opt/client

    2. 执行以下命令配置环境变量。

      source bigdata_env

    3. 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户,当前用户需要具有创建HBase表的权限。如果当前集群未启用Kerberos认证,则无需执行此命令。

      kinit MRS 集群用户

      例如,kinit hbaseuser

    4. 直接执行HBase组件的客户端命令。

      hbase shell

  6. 运行HBase客户端命令,实现A业务。

    1. 根据表1创建用户信息表user_info并添加相关数据。

      create 'user_info',{NAME => 'i'}

      以增加编号12005000201的用户信息为例,其他用户信息参照如下命令依次添加:

      put 'user_info','12005000201','i:name','A'

      put 'user_info','12005000201','i:gender','Male'

      put 'user_info','12005000201','i:age','19'

      put 'user_info','12005000201','i:address','City A'

    2. 在用户信息表user_info中新增用户的学历、职称信息。

      以增加编号为12005000201的用户的学历、职称信息为例,其他用户类似。

      put 'user_info','12005000201','i:degree','master'

      put 'user_info','12005000201','i:pose','manager'

    3. 根据用户编号查询用户姓名和地址。

      以查询编号为12005000201的用户姓名和地址为例,其他用户类似。

      scan'user_info',{STARTROW=>'12005000201',STOPROW=>'12005000201',COLUMNS=>['i:name','i:address']}

    4. 根据用户姓名进行查询。

      以查询A用户信息为例,其他用户类似。

      scan'user_info',{FILTER=>"SingleColumnValueFilter('i','name',=,'binary:A')"}

    5. 删除用户信息表中该用户的数据。

      所有用户的数据都需要删除,以删除编号为12005000201的用户数据为例,其他用户类似。

      delete'user_info','12005000201','i'

    6. 删除用户信息表。

      disable'user_info'

      drop 'user_info'

MRS 3.x及之后版本集群执行以下操作:

  1. 在主管理节点使用客户端。

    1. 以客户端安装用户登录客户端安装节点,执行以下命令切换到客户端目录。

      cd /opt/client

    2. 执行以下命令配置环境变量。

      source bigdata_env

    3. 如果当前集群已启用Kerberos认证,执行以下命令认证当前用户,当前用户需要具有创建HBase表的权限。如果当前集群未启用Kerberos认证,则无需执行此命令。

      kinit MRS集群用户

      例如,kinit hbaseuser

    4. 直接执行HBase组件的客户端命令。

      hbase shell

  2. 运行HBase客户端命令,实现A业务。

    1. 根据表1创建用户信息表user_info并添加相关数据。

      create 'user_info',{NAME => 'i'}

      以增加编号12005000201的用户信息为例,其他用户信息参照如下命令依次添加:

      put 'user_info','12005000201','i:name','A'

      put 'user_info','12005000201','i:gender','Male'

      put 'user_info','12005000201','i:age','19'

      put 'user_info','12005000201','i:address','City A'

    2. 在用户信息表user_info中新增用户的学历、职称信息。

      以增加编号为12005000201的用户的学历、职称信息为例,其他用户类似。

      put 'user_info','12005000201','i:degree','master'

      put 'user_info','12005000201','i:pose','manager'

    3. 根据用户编号查询用户姓名和地址。

      以查询编号为12005000201的用户姓名和地址为例,其他用户类似。

      scan'user_info',{STARTROW=>'12005000201',STOPROW=>'12005000201',COLUMNS=>['i:name','i:address']}

    4. 根据用户姓名进行查询。

      以查询A用户信息为例,其他用户类似。

      scan'user_info',{FILTER=>"SingleColumnValueFilter('i','name',=,'binary:A')"}

    5. 删除用户信息表中该用户的数据。

      所有用户的数据都需要删除,以删除编号为12005000201的用户数据为例,其他用户类似。

      delete'user_info','12005000201','i'

    6. 删除用户信息表。

      disable'user_info'

      drop 'user_info'