本篇主要介绍如何通过HBase API访问Lindorm宽表引擎。

使用HBase Java API访问Lindorm

操作前请确认已完成SDK安装且已获取集群的连接地址。

  1. 配置客户端参数。

    您可以通过以下两种方式,来配置访问Lindorm的客户端参数。

    • 配置文件
      hbase-site.xml 中增加下列配置项:
      <configuration>
            <!--
          集群的连接地址,在控制台页面的数据库连接界面获得(注意公网地址和VPC内网地址)
          -->
          <property>
              <name>hbase.zookeeper.quorum</name>
              <value>ld-xxxx-proxy-hbaseue.lindormue.xxx.rds.aliyuncs.com:30020</value>
          </property>
          <!--
          设置用户名密码,默认root:root,可根据实际情况调整
          -->
          <property>
              <name>hbase.client.username</name>
              <value>root</value>
          </property>
          <property>
              <name>hbase.client.password</name>
              <value>root</value>
          </property>
          <!--
          如果您直接依赖了阿里云HBase客户端,则无需配置connection.impl参数,如果您依赖了alihbase-connector,则需要配置此参数
          -->
          <!--property>
              <name>hbase.client.connection.impl</name>
              <value>org.apache.hadoop.hbase.client.AliHBaseUEClusterConnection</value>
          </property-->
      </configuration>
    • 代码
      通过代码Create Configuration,然后增加相关配置。
      // 新建一个Configuration
      Configuration conf = HBaseConfiguration.create();
      // 集群的连接地址,在控制台页面的数据库连接界面获得(注意公网地址和VPC内网地址)
      conf.set("hbase.zookeeper.quorum", "ld-xxxx-proxy-hbaseue.hbaseue.xxx.rds.aliyuncs.com:30020");
      // 设置用户名密码,默认root:root,可根据实际情况调整
      conf.set("hbase.client.username", "root")
      conf.set("hbase.client.password", "root")
      
      // 如果您直接依赖了阿里云Lindorm客户端,则无需配置connection.impl参数,如果您依赖了alihbase-connector,则需要配置此参数
      //conf.set("hbase.client.connection.impl", AliHBaseUEClusterConnection.class.getName());
      注意 如果您依赖了老版本的alihbase-connector(版本号小于1.0.9/2.0.9)请参见老版本的参数配置
  2. 创建连接。
    通过配置conf创建Connection,Conf的生成详见上一节中的代码访问方式。
    // 创建HBase连接,在程序生命周期内只需创建一次,该连接线程安全,可以共享给所有线程使用。
    // 在程序结束后,需要将Connection对象关闭,否则会造成连接泄露。
    // 也可以采用try finally方式防止泄露
    Connection connection = ConnectionFactory.createConnection(conf);
  3. 使用API。

    建立完连接后,即可使用HBase Java API访问Lindorm集群。下面提供一些简单的Java 示例。

    • DDL操作
      try (Admin admin = connection.getAdmin()){
          // 建表
          HTableDescriptor htd = new HTableDescriptor(TableName.valueOf("tablename"));
          htd.addFamily(new HColumnDescriptor(Bytes.toBytes("family")));
          // 创建一个只有一个分区的表
          // 在生产上建表时建议根据数据特点预先分区
          admin.createTable(htd);
      
          // disable 表
          admin.disableTable(TableName.valueOf("tablename"));
      
          // truncate 表
          admin.truncateTable(TableName.valueOf("tablename"), true);
      
          // 删除表
          admin.deleteTable(TableName.valueOf("tablename"));
      }
    • DML操作
      //Table 为非线程安全对象,每个线程在对Table操作时,都必须从Connection中获取相应的Table对象
      try (Table table = connection.getTable(TableName.valueOf("tablename"))) {
          // 插入数据
          Put put = new Put(Bytes.toBytes("row"));
          put.addColumn(Bytes.toBytes("family"), Bytes.toBytes("qualifier"), Bytes.toBytes("value"));
          table.put(put);
      
          // 单行读取
          Get get = new Get(Bytes.toBytes("row"));
          Result res = table.get(get);
      
          // 删除一行数据
          Delete delete = new Delete(Bytes.toBytes("row"));
          table.delete(delete);
      
          // scan 范围数据
          Scan scan = new Scan(Bytes.toBytes("startRow"), Bytes.toBytes("endRow"));
          ResultScanner scanner = table.getScanner(scan);
          for (Result result : scanner) {
              // 处理查询结果result
              // ...
          }
          scanner.close();
      }

使用HBase 非Java API访问Lindorm

Lindorm支持通过HBase 非Java(C++/Python/Go等)API进行访问, 具体访问方法请参见HBase 非Java SDK 安装&访问

使用HBase Shell访问Lindorm

  1. 前提条件
    1. 已获取阿里云提供的HBase tar包。有两种方式可以获得:
      • 方式一:直接下载完整压缩包,里面已经拥有了访问Lindorm所需的全部依赖,并做了功能增强。下载地址 : 数据库连接>连接信息>hbase shell下载
      • 方式二:直接从HBase官方网站下载你所需版本的HBase的tar包。并按照历史版本适配(Jar包替换)的指导,拷贝相应版本的jar包拷贝至tar包解压后的lib目录中。
    2. 已获取集群的连接地址。HBase Shell使用的连接地址为连接信息中的Java API访问地址部分(注意专有网络地址和外网地址的区别)。
  2. 配置参数
    在解压后的tar包中的conf/目录下的hbase-site.xml文件中,加入如下配置:
    <configuration>
          <!--
        集群的连接地址,在控制台页面的数据库连接界面获得(注意公网地址和VPC内网地址)
        -->
        <property>
            <name>hbase.zookeeper.quorum</name>
            <value>ld-xxxx-proxy-hbaseue.hbaseue.xxx.rds.aliyuncs.com:30020</value>
        </property>
        <!--
        设置用户名密码,默认root:root,可根据实际情况调整
        -->
        <property>
            <name>hbase.client.username</name>
            <value>root</value>
        </property>
        <property>
            <name>hbase.client.password</name>
            <value>root</value>
        </property>
    </configuration>
  3. 使用Shell访问

    进入tar包解压路径里的bin/目录,输入./hbase shell。就可以开始使用原生的HBase Shell访问Lindorm(默认log文件在hbase tar包解压后的logs目录下)。

    Shell的详细使用方法可以参见HBase Shell入门

    使用Shell连接只能做简单的DDL操作和数据读写操作,管理接口如balance、move等集群管理命令都已经被禁用。