此wiki 主要介绍在spring boot 项目接入基于自定义 hbase-client-spring-boot-starter hbase 客户端
hbase-client-spring-boot-starter 项目路径 https://gitee.com/lbjyu/hbase-client-spring-boot-starter.git
hbase-client-spring-boot-starter 基于hbase-shaded-client,spring boot 的第三方start
annotation ........................................... 自定义注解包
autoconfigure ...................................... 自动加载包
constants ...................................... 常量包
util ........................................ 工具包,自定义注解解析器
vo ........................................ 推送和查询以及分页VO类
HbaseApiService ................................... 对外暴露的Service
HbaseModel ................................... 推送模型类,泛型用于业务和hbase服务交互解耦
1.annotation 注解包各注解功能介绍
序号 |
注解名称 |
属性 |
作用范围 |
功能 |
1 |
@HbRowKey |
rowKey |
字段 |
标注该字段为表里面的主键 |
2 |
@HbTableName |
tableName columnFamily |
字段 |
@HbTableName columnFamily:对应表列族 |
2.autoconfigure 自动装配包
序号 |
类名 |
功能 |
1 |
EnableHbaseClient |
自动装配注解 |
2 |
HbaseApiServiceImpl |
HbaseApiService 的接口实现 |
3 |
HbaseClient |
Client 客户端类,与ES服务交互类 |
4 |
HbaseConfigBeanAutoConfigure |
自动装配实现类 |
5 |
HbaseConfigProperties |
主动装配属性注入类 |
3.constants 静态常量包
5.util 工具包
序号 |
类名 |
功能 |
1 |
HbaseAnnotationUtil |
annotation 注解包各注解的解析类 |
2 |
HbaseBeanUtils |
bean 工具类对象转map |
3 |
HbaseException |
自定义异常类 |
4 |
MapperUtils |
jackSon 工具类,json转换 |
6. vo集合包
序号 |
类名 |
功能 |
1 |
HbasePageBean |
分页VO 注意里面没有总条数与总页数字段 |
2 |
HbasePutVo |
保存数据的基类 |
3 |
HbaseQueryVo |
查询数据的基类 |
7.HbaseApiService 对外暴露的Hbase API 接口
序号 |
方法名 |
入参 |
方法描述 |
1 |
singlePut(HbaseModel<T> hbaseModel) |
hbaseModel |
单个提交实体数据到Hbase |
2 |
multiplePut(HbaseModel<T> hbaseModel) |
hbaseModel |
批量提交数据 到habse |
3 |
multiplePutAsync(HbaseModel<T> hbaseModel) |
hbaseModel |
批量异步put操作 |
4 |
singleGet(HbaseQueryVo hbaseQueryVo, Class<T> requiredType) |
hbaseQueryVo,requiredType |
表名,主键获取对应的数据 |
5 |
singleGetWithColumn(HbaseQueryVo hbaseQueryVo, Class<T> requiredType) |
hbaseQueryVo,requiredType |
表名,主键获取对应列的数据 |
6 |
List<T> multipleGet(HbaseQueryVo hbaseQueryVo, Class<T> requiredType) |
hbaseQueryVo,requiredType |
根据表名,指定的主键,获取指定的列 |
7 |
List<T> scanByPrefixFilter(HbaseQueryVo hbaseQueryVo, Class<T> requiredType) |
hbaseQueryVo,requiredType |
获取主键匹配前缀的列,会存在全表扫描,性能存在风险以及OOM,慎用 |
8 |
HbasePageBean<T> queryListByParamForPage(HbaseQueryVo hbaseQueryVo, int pageSize, Class<T> requiredType) |
hbaseQueryVo,pageSize,requiredType |
根据起始主键按照条件,查询pageSize大小的数据 |
8.HbaseModel推送模型类,泛型用于业务和hbase服务交互解耦
9.代码接入步骤
9.1 将文章开头的项目下载到本地,打包到本地仓库,然后再项目中添加,下面的包坐标
<dependency>
<groupId>com.yuyunbo</groupId>
<artifactId>hbase-client-spring-boot-starter</artifactId>
<version>1.0.0</version>
</dependency>
9.2配置zookeeper 集群的相关属性
添加自动装配注解
9.3 编写测试基类 详情可见 项目 https://gitee.com/lbjyu/yuqiqigrowup.git .controller.hbase 包下面代码
数据查询结果
来源:oschina
链接:https://my.oschina.net/u/3195939/blog/4358429