大数据---35.HBase 常用的api的具体解释

Hbase是一个分布式的、面向列的开源数据库,HDFS文件操作常有两种方式,一种是命令行方式,即Hbase提供了一套与Linux文件命令类似的命令行工具。另一种是JavaAPI,即利用Hbase的Java库,采用编程的方式操作Hbase数据库。

一、简述

截至到目前 (2019.04),HBase 有两个主要的版本,分别是 1.x 和 2.x ,两个版本的 Java API 有所不同,1.x 中某些方法在 2.x 中被标识为 @deprecated 过时。所以下面关于 API 的样例,我会分别给出 1.x 和 2.x 两个版本。完整的代码见本仓库:
Java API 1.x Examples
Java API 2.x Examples
同时你使用的客户端的版本必须与服务端版本保持一致,如果用 2.x 版本的客户端代码去连接 1.x 版本的服务端,会抛出 NoSuchColumnFamilyException 等异常。
HBase本身是基于Java开发的,因此,也提供了一整套的Java API开发接口,整个接口方法非常完善,包括命名空间管理、表级管理、列族级管理、数据(增删改查、导入、导出)、集群调度、状态监测、集群优化等。

二、Java API 1.x 基本使用

1 新建Maven工程,导入项目依赖
新建项目后在pom.xml中添加依赖:

<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-server</artifactId>
    <version>1.3.2</version>
</dependency>

<dependency>
    <groupId>org.apache.hbase</groupId>
    <artifactId>hbase-client</artifactId>
    <version>1.3.2</version>
</dependency>

2.主要的Hbase API类和数据模型之间的的对应的关系
在这里插入图片描述
1 Admin
org.apache.hadoop.hbase.client.Admin
说明:
Admin为Java接口类型,不可以直接用该接口实例化一个对象,而是必须调用Connection.getAdmin()方法,返回一个Admin的子对象,然后用这个Admin接口来操作返回的子对象方法。

该接口用于管理 HBase 数据库的表信息,包括创建或删除表、列出表项、使表有效或无效、添加或删除表的列族成员、检查 HBase 的运行状态等。
在这里插入图片描述
2 HBaseConfiguration
org.apache.hadoop.hbase.HBaseConfiguration
说明:
该类用于管理 HBase 的配置信息
在这里插入图片描述
3 Table
org.apache.hadoop.hbase.client.Table
说明:
Table是Java接口类型,不可以用Table接口直接实例化一个对象,而是必须调用Connection.getTable()方法返回Table的一个子对象,然后再调用返回的子对象的成员方法。

这个接口用于与HBase进行通信。如果多个线程对一个Table接口子对象进行put或者delete操作的话,则写缓冲器可能会崩溃。因此,在多线程环境下,建议使用HTablePool。
在这里插入图片描述
4 HTableDescriptor
org.apache.hadoop.hbase.HTableDescriptor
说明:

HTableDescriptor 包含了 HBase 中表格的详细信息,例如表中的列族、该表的类型(-ROOT-,.META.)、该表是否只读、MemStore的最大空间、Region什么时候应该分裂等。
在这里插入图片描述
5 HColumnDescriptor
org.apache.hadoop.hbase.HColumnDescriptor
说明:
HColumnDescriptor包含了列族的详细信息,例如列族的版本号、压缩设置等。

HColumnDescriptor 通常在添加列族或者创建表的时候使用。列族一旦建立就不能被修改,只能通过删除列族,然后再创建新的列族来间接的修改。一旦列族被删除了,该列族包含的数据也随之被删除。
在这里插入图片描述
6 Put
org.apache.hadoop.hbase.client.Put
说明:
用来对单元格执行添加数据操作。
在这里插入图片描述
7 Get
org.apache.hadoop.hbase.client.Get
说明:
用来获取单行的信息。
在这里插入图片描述
8 Result
org.apache.hadoop.hbase.client.Result
说明:
用于存放Get或Scan操作后的查询结果,并以键值对的格式存储在map结构中。该类不是线程安全的。
在这里插入图片描述
9 ResultScanner
org.apache.hadoop.hbase.client.ResultScanner
说明:
客户端获取值的接口。
在这里插入图片描述
10 Scan
org.apache.hadoop.hbase.client.Scan
说明:
可以利用Scan来限定需要查找的数据,例如限定版本跑不快、起始行号、终止行号、列族、列限定符、返回值的数量的上限等。
在这里插入图片描述

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值