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) | 获取指定列族下的所有列 |