推特 阿里云技术文档正文

使用Java Client 访问_HBase 标准版_云数据库 HBase 版

admin 阿里云技术文档 2020-02-11 174 0
阿里云服务器优惠

使用Java Client 访问

使用JavaClient访问 HBase

访问准备

需要在相同的Region内准备一台ECS。如果已经有ECS了那么请继续下一步。如果还没有,您可以在ECS的购买页面上购买一台按量的ECS进行测试。设置请参考这里

也可以采取公网访问的方式:公网访问方案

使用 Client 读写 HBase

云HBase企业标准版可以直接使用社区开源版客户端,也可以使用阿里定制的HBase客户端访问(注:如果是公网访问必须使用阿里提供的客户端)。下载和依赖客户端的方式请见 客户端下载这篇文档

  1. 引入 Maven 依赖

    如果购买的1.x版本的HBase集群,使用1.1.x版本的客户依赖:

    1. <groupId>com.aliyun.hbase</groupId>
    2. <artifactId>alihbase-client</artifactId>
    3. <version>1.1.10</version>

    这里1.1.x的其他版本都是可以使用的,HBase在第三位的小版本上的变化是保证所有的接口兼容的。

    如果购买的是2.x版本的HBase集群,使用2.0.x版本的客户端依赖:

    1. <groupId>com.aliyun.hbase</groupId>
    2. <artifactId>alihbase-client</artifactId>
    3. <version>2.0.5</version>

    如果您的运行环境上并没有HBase的client运行需要的jar包,请在maven中添加如下的shade配置,把所有hbase-client的依赖都打到最终的jar包中。

    1. <build>
    2. <plugins>
    3. <plugin>
    4. <groupId>org.apache.maven.plugins</groupId>
    5. <artifactId>maven-shade-plugin</artifactId>
    6. <version>3.0.0</version>
    7. <executions>
    8. <execution>
    9. <phase>package</phase>
    10. <goals>
    11. <goal>shade</goal>
    12. </goals>
    13. <configuration>
    14. <artifactSet>
    15. </artifactSet>
    16. </configuration>
    17. </execution>
    18. </executions>
    19. </plugin>
    20. </plugins>
    21. </build>
  2. 获取集群的 ZK 连接地址

    进入 HBase 控制台集群详情页面,在网络信息部分查看ZK连接地址,可以看到类似如下的ZooKeeper的连接地址。

    1. hb-bp1f5xxxx48a0r17i-001.hbase.rds.aliyuncs.com:2181
    2. hb-bp1f5xxxx48a0r17i-002.hbase.rds.aliyuncs.com:2181
    3. hb-bp1f5xxxx48a0r17i-003.hbase.rds.aliyuncs.com:2181

    注意:如果您使用的是HBase增强版集群,请参照增强版的帮助文档HBase Java API 访问

  3. 配置 ZK 地址,连接集群

    将集群的zk地址替换代码中的zk地址,就可以使用如下的示例代码来进行hbase集群的访问了。 例子中展示了创建表、写入数据、读取数据 三种场景。

    1. private static final String TABLE_NAME = "mytable";
    2. private static final String CF_DEFAULT = "cf";
    3. public static final byte[] QUALIFIER = "col1".getBytes();
    4. private static final byte[] ROWKEY = "rowkey1".getBytes();
    5. public static void main(String[] args) {
    6. Configuration config = HBaseConfiguration.create();
    7. String zkAddress = "hb-bp1f5xxxx48a0r17i-001.hbase.rds.aliyuncs.com:2181,hb-bp1f5xxxx48a0r17i-002.hbase.rds.aliyuncs.com:2181,hb-bp1f5xxxx48a0r17i-003.hbase.rds.aliyuncs.com:2181";
    8. config.set(HConstants.ZOOKEEPER_QUORUM, zkAddress);
    9. Connection connection = null;
    10. try {
    11. connection = ConnectionFactory.createConnection(config);
    12. HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(TABLE_NAME));
    13. tableDescriptor.addFamily(new HColumnDescriptor(CF_DEFAULT));
    14. System.out.print("Creating table. ");
    15. Admin admin = connection.getAdmin();
    16. admin.createTable(tableDescriptor);
    17. System.out.println(" Done.");
    18. Table table = connection.getTable(TableName.valueOf(TABLE_NAME));
    19. try {
    20. Put put = new Put(ROWKEY);
    21. put.addColumn(CF_DEFAULT.getBytes(), QUALIFIER, "this is value".getBytes());
    22. table.put(put);
    23. Get get = new Get(ROWKEY);
    24. Result r = table.get(get);
    25. byte[] b = r.getValue(CF_DEFAULT.getBytes(), QUALIFIER); // returns current version of value
    26. System.out.println(new String(b));
    27. } finally {
    28. if (table != null) table.close();
    29. }
    30. } catch (Exception e) {
    31. e.printStackTrace();
    32. } finally {
    33. if (connection != null) {
    34. try {
    35. connection.close();
    36. } catch (IOException e) {
    37. e.printStackTrace();
    38. }
    39. }
    40. }
    41. }

代码样例

您也可以在这里下载我们提供的Java代码工程,替换其中的ZooKeeper变量部分后使用

HBase访问Demo下载

版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

-----