本文主要介绍如何使用Java Client访问HBase标准版集群。
前提条件
- 通过内网连接时,请确认已购买与HBase标准版在相同专有网络VPC网络下的ECS服务器,并将ECS服务器的IP地址在HBase中添加为白名单。
- 通过外网连接时必须使用阿里提供的客户端,下载客户端请参见HBase Java SDK 下载。
若未配置白名单,请参考配置IP白名单。
操作步骤
- 获取集群的ZK连接地址。
- 登录云数据库HBase控制台。
- 在集群列表页面,单击标准版集群实例名称,进入集群详情页面。
- 在集群详情页面,单击数据库连接,进入数据库连接页,复制该实例的ZK链接地址。
- 配置ZK地址,连接集群。
在客户本地的业务代码中通过如下配置,连接集群。
说明 用集群的ZK地址替换代码中的ZK地址,就可以使用如下的示例代码来进行HBase集群的访问,以下示例中展示了创建表、写入数据、读取数据三种场景。
private static final String TABLE_NAME = "mytable";
private static final String CF_DEFAULT = "cf";
public static final byte[] QUALIFIER = "col1".getBytes();
private static final byte[] ROWKEY = "rowkey1".getBytes();
public static void main(String[] args) {
Configuration config = HBaseConfiguration.create();
//ZK地址
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";
config.set(HConstants.ZOOKEEPER_QUORUM, zkAddress);
Connection connection = null;
try {
connection = ConnectionFactory.createConnection(config);
HTableDescriptor tableDescriptor = new HTableDescriptor(TableName.valueOf(TABLE_NAME));
tableDescriptor.addFamily(new HColumnDescriptor(CF_DEFAULT));
System.out.print("Creating table. ");
Admin admin = connection.getAdmin();
admin.createTable(tableDescriptor);
System.out.println(" Done.");
Table table = connection.getTable(TableName.valueOf(TABLE_NAME));
try {
Put put = new Put(ROWKEY);
put.addColumn(CF_DEFAULT.getBytes(), QUALIFIER, "this is value".getBytes());
table.put(put);
Get get = new Get(ROWKEY);
Result r = table.get(get);
byte[] b = r.getValue(CF_DEFAULT.getBytes(), QUALIFIER); // returns current version of value
System.out.println(new String(b));
} finally {
if (table != null) table.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (connection != null) {
try {
connection.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
后续操作
您也可以在这里下载我们提供的Java代码工程,替换其中的ZooKeeper变量部分后使用单击下载。