HBase 客户端API

本章介绍用于在HBase表上执行 CRUD 操作的HBase 的Java客户端API 。HBase用Java编写,并具有Java Native API。因此它提供对数据操作语言(DML)的编程访问。

1. Class HBase配置

将HBase配置文件添加到配置。这个类属于 org.apache.hadoop.hbase 包。

方法和描述

序号 方法和描述
1 static org.apache.hadoop.conf.Configuration create() 此方法使用HBase资源创建配置。

 

2. Class HTable

HTable是代表HBase表的HBase内部类。它是用于与单个HBase表进行通信的表实现。这个类属于 org.apache.hadoop.hbase.client 类。

构造函数

序号 构造函数和描述
1 HTable()
2 HTable(TableName tableName, ClusterConnection connection, ExecutorService pool) 使用这个构造函数,你可以创建一个对象来访问一个HBase表。

方法和描述

序号 方法和描述
1 void close() 释放HTable的所有资源。
2 void delete(Delete delete) 删除指定的单元格/行。
3 boolean exists(Get get) 使用此方法,您可以按照Get指定的方式测试表中列的存在性。
4 Result get(Get get) 从给定行中检索某些单元格。
5 org.apache.hadoop.conf.Configuration getConfiguration() 返回此实例使用的Configuration对象。
6 TableName getName() 返回此表的表名称实例。
7 HTableDescriptor getTableDescriptor() 返回此表的表描述符。
8 byte[] getTableName() 返回此表的名称。
9 void put(Put put) 使用这种方法,您可以将数据插入表中。

 

3. Put类

该类用于对单行执行Put操作。它属于 org.apache.hadoop.hbase.client 包。

构造函数

序号 构造函数和描述
1 Put(byte[] row) 使用此构造函数,您可以为指定的行创建Put操作。
2 Put(byte[] rowArray, int rowOffset, int rowLength) 使用此构造函数,您可以复制传入的行键以保持本地。
3 Put(byte[] rowArray, int rowOffset, int rowLength, long ts) 使用此构造函数,您可以复制传入的行键以保持本地。
4 Put(byte[] row, long ts) 使用这个构造函数,我们可以使用给定的时间戳为指定的行创建一个Put操作。

方法

序号 方法和描述
1 Put add(byte[] family, byte[] qualifier, byte[] value) 将指定的列和值添加到此Put操作中。
2 Put add(byte[] family, byte[] qualifier, long ts, byte[] value) 添加指定的列和值,并将指定的时间戳作为其版本的Put操作。
3 Put add(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value) 添加指定的列和值,并将指定的时间戳作为其版本的Put操作。
4 Put add(byte[] family, ByteBuffer qualifier, long ts, ByteBuffer value) 添加指定的列和值,并将指定的时间戳作为其版本的Put操作。

 

4. Get类

该类用于在单个行上执行Get操作。该类属于 org.apache.hadoop.hbase.client 包。

构造函数

序号 构造函数和说明
1 Get(byte[] row) 使用这个构造函数,你可以为指定的行创建一个Get操作。
2 Get(Get get)

方法

序号 方法和描述
1 Get addColumn(byte[] family, byte[] qualifier) 使用指定的限定符从特定族中检索列。
2 Get addFamily(byte[] family) 检索指定系列的所有列。

 

5. 删除类

该类用于在单个行上执行删除操作。要删除整行,请使用要删除的行实例化Delete对象。该类属于 org.apache.hadoop.hbase.client 包。

构造函数

序号 构造函数和说明
1 Delete(byte[] row) 为指定的行创建一个删除操作。
2 Delete(byte[] rowArray, int rowOffset, int rowLength) 为指定的行和时间戳创建一个删除操作。
3 Delete(byte[] rowArray, int rowOffset, int rowLength, long ts) 为指定的行和时间戳创建一个删除操作。
4 Delete(byte[] row, long timestamp) 为指定的行和时间戳创建一个删除操作。

方法

序号 方法和描述
1 Delete addColumn(byte[] family, byte[] qualifier) 删除指定列的最新版本。
2 Delete addColumns(byte[] family, byte[] qualifier, long timestamp) 删除时间戳小于或等于指定时间戳的指定列的所有版本。
3 Delete addFamily(byte[] family) 删除指定系列的所有列的所有版本。
4 Delete addFamily(byte[] family, long timestamp) 使用小于或等于指定时间戳的时间戳删除指定系列的所有列。

 

6. 结果类

该类用于获取Get或Scan查询的单行结果。

构造函数

序号 构造函数
1 Result() 使用这个构造函数,你可以创建一个没有KeyValue负载的空Result; 如果调用原始的Cells(),则返回null。

方法

序号 方法和描述
1 byte[] getValue(byte[] family, byte[] qualifier) 此方法用于获取指定列的最新版本。
2 byte[] getRow() 此方法用于检索与创建此结果的行对应的行键。