Tablestore HBase Client supports the operations of HBase 1.0.0 and later. This topic describes how to make Tablestore HBase Client compatible with the operations of HBase versions earlier than 1.0.
Compared with earlier versions, HBase 1.0.0 has some major changes, which are incompatible with HBase of earlier versions.
This topic also describes the major changes to facilitate your operations.
HConnection is deprecated in HBase 1.0.0 and later. We recommend that you use
org.apache.hadoop.hbase.client.ConnectionFactory to create a class to implement Connections, and replace the deprecated ConnectionManager
and HConnectionManager with ConnectionFactory.
Connection creation is a heavy-weight operation. Connection implementations are thread-safe. You can create a connection, and share it with different threads.
For HBase 1.0.0 and later, you must manage the lifecycle of the connection and close the connection after use.
The following code is the latest code used to create a connection:
Connection connection = ConnectionFactory.createConnection(config); // ... connection.close();
If you use HBase versions earlier than 1.0.0, you can specify a STRING-type table
name when you create a table. For HBase 1.0.0 and later, you must use the
The following code is the latest code used to specify a STRING-type table name:
String tableName = "MyTable"; // or byte tableName = Bytes.toBytes("MyTable"); TableName tableNameObj = TableName.valueOf(tableName);
Table, BufferedMutator, and RegionLocator operations
The HTable operation is replaced by the Table, BufferedMutator, and RegionLocator operations in HBase 1.0.0 and later.
org.apache.hadoop.hbase.client.Table: performs read and write operations on a single table.
org.apache.hadoop.hbase.client.BufferedMutator: writes data asynchronously. This operation corresponds to
setAutoFlush(boolean)of the HTableInterface operation of the earlier HBase versions.
org.apache.hadoop.hbase.client.RegionLocator: indicates the partition information of the table.
The Table, BufferedMutator, and RegionLocator operations are not thread-safe. However, they are lightweight and can be used to create an object for each thread.
The HBaseAdmin operation is replaced by
org.apache.hadoop.hbase.client.Admin in HBase 1.0.0 and later. Tablestore is a cloud service, and most Tablestore O&M
operations are automatically processed. Therefore, most Admin operations are not supported
by Tablestore. For more information, see Differences between Tablestore and HBase.
Use a connection instance to create an admin instance:
Admin admin = connection.getAdmin();