更新时间:2025-07-17 GMT+08:00
分享

使用HBase Shell连接HBase安全集群

您可以通过创建集群开启加密通道,实现数据加密传输。此章节介绍如何开通HBase安全通道。

使用限制

  • 集群开启安全通道可能会导致性能下降。
  • HBase安全通道只能在创建集群时开启。
  • HBase集群与弹性云服务器具有相同区域、可用区、VPC。
  • HBase集群与弹性云服务器具有相同安全组。
  • 弹性云服务器安全组中添加本地主机IP地址。

创建集群并打开安全通道

  1. 登录表格存储服务管理控制台。
  2. 控制台左上角选择区域。
  3. 单击右上角的购买集群按钮,进入“购买集群”页面。
  4. 完成其他配置后,查看安全通道加密按钮是否开启,默认开启。
  5. 配置好参数,单击“立即购买”。
  6. 进入“规格详情”页面,确认集群规格订单信息,单击“提交”,成功提交集群创建任务,集群创建成功后,进入详情页面查看通道开启状态。

连接HBase安全集群

  1. 登录表格存储服务管理控制台。
  2. 控制台左上角选择区域。
  3. 单击“帮助 > hbase2.x客户端下载”,下载客户端。
  4. 准备弹性云服务安装客户端。
  5. 使用SSH登录工具(如PuTTY)通过“弹性IP”远程登录到Linux弹性云服务器。

    具体登录操作步骤请参见《弹性云服务器用户指南》中的“登录Linux弹性云服务器 > SSH密码方式登录”。

  6. 安装步骤3中下载的客户端,请参见安装客户端并校验客户端
  7. 进入安装客户端的目录,修改hbase-env.sh文件内容。

    • 进入hbase-client文件夹,查看conf文件夹。
      cd hbase-client
    • 进入conf文件夹编辑hbase-env.sh文件。
      • 进入conf文件夹。
        cd conf/
      • 编辑hbase-env.sh文件。
        vi hbase-env.sh
      • 在hbase-env.sh文件最后添加内容:
        CLIENT_JVMFLAGS="-Dzookeeper.clientCnxnSocket=org.apache.zookeeper.ClientCnxnSocketNetty -Dzookeeper.client.secure=true"
        export HBASE_OPTS="${CLIENT_JVMFLAGS} ${HBASE_OPTS}"
      • 单击“Ecs”退出编辑界面。
      • 保存添加内容。
        :wq

  8. 进入安装客户端目录下进行客户端配置,将如下配置添加到客户端conf目录下的hbase-site.xml文件中。

    • 编辑hbase-site.xml文件。
      vi hbase-site.xml
    • 在hbase-site.xml文件最后添加内容:
      <property>
          <name>hbase.rpc.protection</name>
          <value>privacy</value>
      </property>
    • 单击“Ecs”退出编辑界面。
    • 保存添加内容。
      :wq

  9. 连接HBase集群。

    • 配置zookeeper地址到配置文件,请参见配置zookeeper地址
    • 启动Shell访问集群。

      执行“bin/hbase shell”,启动Shell访问集群。

HBase入门使用

本节介绍常用的HBase Shell命令。更多的HBase Shell命令,请参见https://learnhbase.wordpress.com/2013/03/02/hbase-shell-commands/

  1. 获取帮助。

    在HBase shell执行“help”命令,将会返回所有命令信息,以及基本命令的说明和使用方法。

    hbase(main):001:0> help
  2. 创建表。

    执行“create”命令创建一张表,创建表时必须指定表的名称和ColumnFamily名称。

    hbase(main):007:0> create 'cloudtable','cf'
    0 row(s) in 1.5530 seconds
    
    => Hbase::Table - cloudtable
  3. 查询表。
    hbase(main):009:0> list
    TABLE
    cloudtable
    1 row(s) in 0.0060 seconds
    
    => ["cloudtable"]
  4. 插入记录。

    执行“put”命令往指定表插入一条记录,需要指定表的名称,主键,自定义列,以及插入的具体值。

    hbase(main):004:0> put 'cloudtable','row1','cf:a','value1'
    0 row(s) in 0.2720 seconds

    命令中各参数分别代表如下含义:

    • cloudtable:表的名称
    • row1:主键
    • cf:a:自定义的列
    • value1:插入的值
  5. 扫描记录。

    执行“scan”命令扫描表,扫描时需要指定表的名称,即可以全表扫描,也可以指定范围扫描。

    hbase(main):001:0> scan 'cloudtable'
    ROW                                                                  COLUMN+CELL
    row1                                                                column=cf:a, timestamp=1504866237162, value=value1
    1 row(s) in 0.2420 seconds
    • 如果插入数据时,设置了CELL的TTL,TTL属性不支持查看,但是可以通过验证设置的TTL是否生效来确认。
    • 如果插入数据时未设置CELL的TTL,此时系统会自动插入当前时间为时间戳。
  6. 查询单条记录。

    执行“get”命令查询单条记录,必须指定查询表的名称和主键。

    hbase(main):001:0> get 'cloudtable','row1'
    COLUMN                                                               CELL
    cf:a                                                                timestamp=1504866237162, value=value1
    1 row(s) in 0.2280 seconds
  7. 禁用表。

    如果需要修改表,比如删除表,修改表的设置,需要先对表进行禁用。执行“disable”命令禁用表。在禁用表时执行操作会报ERROR,并提示表被禁用。

    hbase(main):002:0> disable 'cloudtable'
    0 row(s) in 2.3550 seconds
  8. 使能表。

    与禁用表相对应的,在禁用表后,如果需要使用表,就需要执行“enable”命令使能表。

    hbase(main):004:0> enable 'cloudtable'
    0 row(s) in 1.2500 seconds
  9. 删除表。

    当不再需要表时,可以执行“drop”命令删除表。删除表之前需要禁用表,不然会报ERROR,并提示表被使能。删除表将会导致数据丢失,请谨慎操作。

    hbase(main):007:0> disable 'cloudtable'
    0 row(s) in 2.2380 seconds
    
    hbase(main):008:0> drop 'cloudtable'
    0 row(s) in 1.2600 seconds
  10. 退出HBase shell。

    执行“quit”命令退出HBase Shell。

    hbase(main):009:0> quit

相关文档