Tablestore HBase Client目前支援HBase Client 1.0.0及以上版本的API。本文介紹Tablestore HBase Client如何相容HBase 1.0以前的版本的API。
背景資訊
HBase Client 1.0.0版本相對於之前版本有一些較大的變化,這些變化是不相容的。
為了協助一些使用老版本HBase的使用者能方便地使用Tablestore,本文將介紹HBase 1.0相較於舊版本的一些較大變化以及如何使其相容。
Connection介面
HBase 1.0.0及以上的版本中廢除了HConnection介面,並推薦使用org.apache.hadoop.hbase.client.ConnectionFactory類,建立一個實現Connection介面的類,用ConnectionFactory取代已廢棄的 ConnectionManager和HConnectionManager。
建立一個Connection的代價比較大,但Connection是安全執行緒的。使用時可以在程式中只產生一個Connection對象,多個線程可以共用該對象。
HBase 1.0.0及以上的版本中,您需要管理Connection的生命週期,並在使用完以後將其它close。
最新的代碼如下所示:
Connection connection = ConnectionFactory.createConnection(config);
// ...
connection.close();TableName類
在HBase 1.0.0之前的版本中,建立表時可以使用String類型的表名,但是HBase 1.0.0之後需要使用類 org.apache.hadoop.hbase.TableName。
最新的代碼如下所示:
String tableName = "MyTable";
// or byte[] tableName = Bytes.toBytes("MyTable");
TableName tableNameObj = TableName.valueOf(tableName);Table、BufferedMutator和RegionLocator介面
從HBase Client 1.0.0開始,HTable介面已廢棄,取而代之的是Table、BufferedMutator和RegionLocator三個介面。具體介面說明請參見下表。
介面 | 說明 |
| 用於操作單張表的讀寫等請求。 |
| 用於非同步批量寫,對應於舊版本 HTableInterface介面中的 |
| 表分區資訊。 |
Table、BufferedMutator和RegionLocator三個介面均非安全執行緒的,但比較輕量,可以為每個線程建立一個對象。
Admin介面
從 HBase Client 1.0.0開始,新介面org.apache.hadoop.hbase.client.Admin取代了HBaseAdmin類。由於Tablestore是一個雲端服務,大多數營運類介面都是自動處理的,所以Admin介面中的眾多介面都不會被支援,具體區別請參見Tablestore HBase Client支援的功能。
通過Connection執行個體建立Admin執行個體的樣本如下:
Admin admin = connection.getAdmin();