HBase Java 核心API介绍(最重要核心帮你列全)

1.HBaseConfiguration

它是HBase的配置类,通过HBaseConfiguration类可以对HBase运行时环境进行配置,所有的操作都需要先创建HBaseConfiguration类的实例,可以通过该类的静态方法create()获得。用法示例如下:
Configuration configuration = HBaseConfiguration.create();
上述语句会从classpath中查找hbase-site.xml文件如果查不到则使用默认配置文件

2.Connection

它表示HBase的连接,通过Connection接口的实例能够查找到HMaster、定位HRegion在集群中的位置并缓存,另外table和admin实例也要从Connection实例中获取数据。

3.Admin

它是为管理HBase提供的接口,他提供了相当于HBase Shell中的DDL操作。下面有接口常用方法介绍

返回值 方法 功能
void createTable(HTableDescriptor desc) 创建一个新表
HTableDescriptor[] listTables() 列出所有的表
void deleteTable(TableName tableName) 删除一个已经存在的表
void enableTable(TableName tableName) 使表有效
void disableTable(TableName tableName) 使表 无效
void modifyTable(TableName tableName,HTableDescriptor htd) 修改一个已经存在的表
boolean TableExists(TableName tableName) 检查表是否存在

4.HTableDescriptor、TableName、Table

  • HTableDescriptor这个类包含了表的名字及对应的列族
  • TableName这个类是对应表名的封装类
  • Table接口主要用于和HBase中的表进行通信,改接口可以获取、添加、删除、扫描HBase表中的数据。
    4.1Table接口的常用方法
返回值 方法 功能
void put(Put put) 向表添加值,put表示添加操作
Result get(Get get) 获取单元值,get表示获取操作
void delete(Delete delete) 删除指定的单元行,delete表示删除操作
ResultScanner getScanner(Scan)、getScanner(byte[]family,byte[]qualifier、getScanner(byte family) 获取当前表的给定列族的Scanner实例,ResultScanner代表结果列表
boolean exists(Get get) 检查Get实例所对应的值是否在Table中
HTableDescriptor getTableDescriptor() 获取表的HTableDescriptor实例
TableName getName() 获取表名

5.HColumnDescriptor

这个类是对列族的描述,包含了列族名称、版本号、压缩设置等信息。该类的实例只在创建表或给表添加、删除列族时使用。值得注意的是,一旦列族被删除,对应列族中所保存的数据也将同时被删除。

6.put

put类为指定的行键添加列键和值
put类常用方法

返回值 方法 功能
put addColumn(byte[]family),byte[]qualifier,byte[]value 添加列键和值
put addColumn(byte[]family),byte[]qualifier,long ts,byte[]value 添加列键和值并添加时间戳
List get(byte[]family,byte[]qualifier) 返回put实例中与指定列键匹配的项,Cell是单元格实例
boolean has(byte[]family,byte[]qualifier) 检查put实例中是否包含指定的列键

7.Get

这个类用来获取表中单个行的数据

返回值 方法 功能
Get addColumn(byte[]family),byte[]qualifier 指定列族和对应的列\
Get addFamily(byte[]family) 指定列族
Get setTimeRange(long minStamp,long maxStamp) 指定列的版本号区间

8.Result

此类代表一行数据,可以从Result实例中获取单元格的行键、列键、版本号
Result类常用方法

返回值 方法 功能
NavigableMap<byte[],byte[]> getFamilyMap(byte[] family) 获取列族下所有列名与值得映射
byte[] value() 返回第一个列键的值
byte[] getValue(byte[]family,byte[]qualifier) 获取指定列键的值
boolean contains(byte[]family,byte[]qualifier) 检查列键是否存在
byte[] get Row() 返回行键
List listCells 获取指定行的所有Cell

9.Scan、ResultScanner

scan命令可以按全表扫描,也可以实现列族和列键扫描
Scan类的常用方法

返回值 方法 功能
Scan addColumn(byte[]family,byte[]qualifier ) 获取指定列表和列修饰符对应的列
Scan addColumn(byte[]family) 获取指定列族下的所有列

猜你喜欢

转载自blog.csdn.net/weixin_42507474/article/details/107535489