(转载)hbase轻量级中间件simplehbase v0.2简介

https://github.com/zhang-xzhi/simplehbase/ 
https://github.com/zhang-xzhi/simplehbase/wiki 
simplehbase简介 

simplehbase是java和hbase之间的轻量级中间件。 主要包含以下功能。 

    数据类型映射:java类型和hbase的bytes之间的数据转换。 
    简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作方式。 
    hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作hbase。 
    动态query封装:类似于myibatis,可以使用xml配置动态语句查询hbase。 

simplehbase示例 
setup hbase 

可以参考网上文档。 
初始化simplehbase 

Java代码   收藏代码
  1. private static SimpleHbaseClient getSimpleHbaseClient() {  
  2.     HBaseDataSource hbaseDataSource = new HBaseDataSource();  
  3.     List<String> hbaseConfigFilePaths = new ArrayList<String>();  
  4.     //hbase配置文件。  
  5.     hbaseConfigFilePaths.add("sample\\hbase_site");  
  6.     //zk配置文件。  
  7.     hbaseConfigFilePaths.add("sample\\zk_conf");  
  8.     hbaseDataSource.setHbaseConfigFilePaths(hbaseConfigFilePaths);  
  9.     hbaseDataSource.init();  
  10.   
  11.     HBaseTableConfig hbaseTableConfig = new HBaseTableConfig();  
  12.     //simplehbase配置文件。  
  13.     hbaseTableConfig.setConfigFilePath("sample\\myRecord.xml");  
  14.     hbaseTableConfig.init();  
  15.   
  16.     SimpleHbaseClient tClient = new SimpleHbaseClientImpl();  
  17.     tClient.setHBaseDataSource(hbaseDataSource);  
  18.     tClient.setHbaseTableConfig(hbaseTableConfig);  
  19.   
  20.     return tClient;  
  21. }  



simplehbase配置xml 

包含htable的配置和一个动态查询的配置 

Java代码   收藏代码
  1. <HBaseTableSchema tableName="MyRecord" defaultFamily="MyRecordFamily">  
  2.     <HBaseColumnSchema qualifier="id" typeName="int" />  
  3.     <HBaseColumnSchema qualifier="name" typeName="string" />  
  4.     <HBaseColumnSchema qualifier="date" typeName="date" />  
  5.     <HBaseColumnSchema qualifier="gender" typeName="allen.sample.Gender" />  
  6.     <HBaseColumnSchema qualifier="age" typeName="int" />  
  7. </HBaseTableSchema>  
  8.   
  9. <statements>      
  10.     <statement id="queryByNameAndAge">  
  11.         select where id greater #id#  
  12.         <isPropertyAvailable prepend="and" property="name">  
  13.             name equal #name#  
  14.         </isPropertyAvailable>  
  15.         <isPropertyAvailable prepend="and" property="age">  
  16.             age greater #age#  
  17.         </isPropertyAvailable>  
  18.     </statement>          
  19. </statements>   

  

定义DO对象 

Java代码   收藏代码
  1. @HBaseTable(defaultFamily = "MyRecordFamily")  
  2. public class Person {  
  3.     @HBaseColumn(qualifier = "id")  
  4.     private int    id;  
  5.     @HBaseColumn(qualifier = "name")  
  6.     private String name;  
  7.     @HBaseColumn(qualifier = "date")  
  8.     private Date   date;  
  9.     @HBaseColumn(qualifier = "gender")  
  10.     private Gender gender;  
  11.     @HBaseColumn(qualifier = "age")  
  12.     private int    age;  
  13. }  



定义该htable的rowkey 

Java代码   收藏代码
  1. public class PersonRowKey implements RowKey {  
  2.   
  3.     private int row;  
  4.   
  5.     public PersonRowKey(int row) {  
  6.         this.row = row;  
  7.     }  
  8.   
  9.     @Override  
  10.     public byte[] toBytes() {  
  11.         return Bytes.toBytes(row);  
  12.     }  
  13. }  



使用simplehbaseclient操作hbase 

Java代码   收藏代码
  1. public static void main(String[] args) throws Exception {  
  2.   
  3.     SimpleHbaseClient simpleHbaseClient = getSimpleHbaseClient();  
  4.   
  5.     //插入一条记录。  
  6.     Person one = new Person();  
  7.     one.setId(1);  
  8.     one.setName("allen");  
  9.     one.setAge(30);  
  10.     one.setGender(Gender.MALE);  
  11.     simpleHbaseClient.putObject(new PersonRowKey(1), one);  
  12.   
  13.     //插入一条记录。  
  14.     Person two = new Person();  
  15.     two.setId(2);  
  16.     two.setName("dan");  
  17.     two.setAge(31);  
  18.     two.setGender(Gender.FEMALE);  
  19.     simpleHbaseClient.putObject(new PersonRowKey(2), two);  
  20.   
  21.     //按照主键查询。  
  22.     Person result = simpleHbaseClient.findObject(new PersonRowKey(1),  
  23.             Person.class);  
  24.     log.info(result);  
  25.   
  26.     //按照范围查询  
  27.     List<Person> resultList = simpleHbaseClient.findObjectList(  
  28.             new PersonRowKey(1), new PersonRowKey(3), Person.class);  
  29.     log.info(resultList);  
  30.   
  31.     //动态语句查询  
  32.     Map<String, Object> para = new HashMap<String, Object>();  
  33.     para.put("id", 0);  
  34.   
  35.     resultList = simpleHbaseClient.findObjectList(new PersonRowKey(1),  
  36.             new PersonRowKey(3), Person.class, "queryByNameAndAge", para);  
  37.     log.info(resultList);  
  38.   
  39.     //动态语句查询  
  40.     para.put("name", "allen");  
  41.     para.put("age", 0);  
  42.     resultList = simpleHbaseClient.findObjectList(new PersonRowKey(1),  
  43.             new PersonRowKey(3), Person.class, "queryByNameAndAge", para);  
  44.     log.info(resultList);  
  45.   
  46.     //删除批量数据。  
  47.     simpleHbaseClient.deleteObjectList(new PersonRowKey(0),  
  48.             new PersonRowKey(100));  
  49.   
  50. }  
hbase轻量级中间件simplehbase v0.1简介 NULL 博文链接:https://zhang-xzhi-xjtu.iteye.com/blog/1953939 立即下载

相关推荐

simpleHbase1.0

java和hbase轻量级中间件的介绍,包含demo,如何用java操作hbase

BASE理论

eBay 的架构师 Dan Pritchett 源于对大规模分布式系统的实践总结,在 ACM 上发表文章提出 BASE 理论,BASE 理论是对 CAP 理论的延伸,核心思想是即使无法做到强一致性(Strong Consistency,CAP 的一致性就是强一致性),但应用可以采用适合的方式达到最终一致性(Eventual Consitency)。 基本可用(Basically Available): 基本可用是指分布式系统在出现故障的时候,允许损失部分可用性,即保证核心可用。电商大促时,为了应对访问量激增

weixin_41358538的博客 350

在 PyCharm 中使用 Copilot

此外,要在 PyCharm 中使用 GitHub Copilot,您必须有效订阅 Copilot。在 PyCharm 中安装 GitHub Copilot 后,您现在可以将其用作项目的扩展。此外,它很容易安装在不同的 IDE 平台上,您还可以为特定编程语言启用 GitHub 插件。此外,按照以下步骤,您可以轻松地在 PyCharm 中安装 GitHub Copilot。此外,在 IDE 上使用 GitHub Copilot 时,您可以使用一些快捷方式。

一览无遗 1万+

阿里HBase高可用8年抗战回忆录

前言 2011年毕玄和竹庄两位大神将HBase引入阿里技术体系,2014年接力棒转到东8区第一位HBase commiter天梧手中,多年来与淘宝、旺旺、菜鸟、支付宝、高德、大文娱、阿里妈妈等几乎全BU合作伙伴携手共进,支撑了双十一大屏、支付宝账单、支付宝风控、物流详情等核心业务。2018年双十一,HBase全天处理请求2.4万亿行,单集群吞吐达到千万级别。从一个婴儿成长为青年,阿里HBase摔...

阿里云云栖号 1621

离散小波-DWT

前沿:      小波变换比较复杂,而且内容

tianchang2you的专栏 4648

实战指南!基于STM32的智能环境监测系统(附完整代码+硬件设计+云端对接)

本文提供了一份基于STM32的智能环境监测系统完整实战指南。详细讲解了从硬件选型、电路设计、传感器驱动到数据采集、本地报警逻辑,以及通过ESP8266模块对接OneNET物联网平台实现数据上云的全过程。项目涵盖嵌入式开发与物联网应用核心技能,并提供了多种手机端数据展示方案,非常适合课程设计或毕业设计参考。

weixin_29193359的博客 355

Hbase的SQL中间件Phoenix

    前面介绍了Hbase,知道了hbase有很多的优点,但是使用起来是不是感觉不得劲,为什么呢?因为不能使用我们大家所熟悉的SQL语言进行数据的读写,并且在Java项目中使用的是Hbase提供的API操作数据,不能使用JDBC进行数据库连接操作,使用起来很不方便。当然,只要有问题,就总有热心的大神去解决问题-Phoenix诞生了。 什么是Phoenix ...

戴着红领巾走世界 574

基于点云数据的统计滤波算法改进

随着三维视觉和点云处理技术的发展,点云数据在机器人、自动驾驶、增强现实等领域得到了广泛应用。而点云数据中常常包含着各种噪声和异常点,这些噪声和异常点会影响后续的数据处理和分析任务。因此,对点云数据进行滤波处理是必不可少的一步。在点云滤波算法中,统计滤波(Statistical Filtering)是一种常见且有效的方法。它通过对点云数据进行统计分析,将噪声和异常点剔除或修复,从而得到更为准确和可靠的点云数据。本文将介绍一种改进的统计滤波算法,并提供相应的源代码实现。

QfcaLinux的博客 292

HBase开发SQL查询中间件之查询原理

如何简化从hbase中查询数据为了兼容以前从关系型数据库中查询数据的接口, 让Hbase可以通过sql语句来查询其中的数据.Hive有这样的功能, 他支持通过类似sql语句的语法来操作hbase中的数据, 但是速度太慢了, 因为hive本身就不是用来查询数据的, hive是数据仓库, 做数据分析的, 不适合我们的应用场景.hbase本身提供的api中, 只有scan是用来查询数据的, 因此我们需要...

Chunhong Song的专栏 2029

FPGA工程师面试——FPGA基础知识24题

线与逻辑是两个输出信号相连可以实现与的功能。在硬件上,要用OC门(集电极开路与非门)来实现,由于不用OC门可能使灌电流过大,而烧坏逻辑门,因此在输出端口应加一个上拉电阻。

FPGA/MATLAB学习教程/源码/项目合作开发 1086

arkts编译报错-arkts-limited-stdlib错误【Bug已完美解决-鸿蒙开发】

在使用 Deveco Studio 4.0 beta2 开发应用时,报错。ERROR: ArkTS:ERROR File: D:/prRevivw/3792/applications_appsamg优快云o”见台难忘Usage of standardlibrary is restricted (arkts-limited-stdlib)这是 ArkTS 新增的语法规则。

一键难忘的博客 3781

什么是中间件?

-  作者:浪花 --  发布时间:2005-1-10 23:53:00 --  什么是中间件? 一、为什么要中间件 计 算机技术迅速发展。从硬件技术看,CPU速度越来越高,处理能力越来越强;从软件技术看,应用程序的规模不断扩大,特别是Internet及WWW的出 现,使计

静水深流 7万+

AI Agent Harness与SCADA系统集成

简单来说,AI Agent Harness是Industrial AI Agent的“中央调度室+装备库+知识库+安全网”把不同技术栈、不同部署环境(云/边/端)、不同功能(感知、推理、决策、执行、验证)的“零散Agent”组装成具备特定工业场景能力的Agent Team(如聚合反应根因诊断Agent Team);管理Agent Team的生命周期(创建、初始化、调度、监控、销毁);提供统一的工业多工具调用接口(对接SCADA、MES、PLC、DCS、巡检机器人、数字孪生平台等);内置。

欢迎来到我的优快云空间!这里聚焦AI大模型应用实战,分享前沿技术、实战案例与开发经验。 356

(转载)hbase轻量级中间件simplehbase v0.1简介

simplehbase尝试简化基于hbase的java应用开发。 Simplehbase主要提供以下功能: 1 POJO和hbase的映射。 2 提供client,简化hbase的数据操作。 3 提供强语义的插入和更新操作。   Insert操作:只有原数据不存在时,才put成功。   Update操作:只有原数据存在时,才put成功。 simplehbase的代码,测试(示例)代码,文档见附件...

weixir123的博客 151

【Clickhouse】Cannot allocate block number in Zookeeper write prefix view location

我有一个问题,我CK集群跑批的时候,replicated表变成只读的了下面是CK的报错和当时ZK的日志。下面是zk报错开始 我认为是写入的时候,压力太大,ZK扛不住了,就按照博客里的建议优化了ZK的参数,现在偶尔还会只读,zk报错都是图里的那种clickhouse的集群是5分片的集群,数据量比较大。每小时批量一次,每次2-10W条数据,字段的话,不到200个字段,使用的 jdbc sink写入。

九师兄 836

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

深入理解Hbase--简介

一、介绍HBase ApacheHBase™ is theHadoopdatabase, a distributed, scalable, big data store. HBase is a type of "NoSQL" database. Apache HBase 是 Hadoop 数据库,一个分布式、可伸缩的大数据存储。 HBase是依赖Hadoop的。为什么HBase能存储海量的数据?因为HBase是在HDFS的基础之上构建的,HDFS是分布式文件系统。 二、为什么要用HBas...

向着高亮的地方 474

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

存储中间件 HBASE 思维导图-java架构 代码示例

HBase 是一个分布式的、版本化的非关系型数据库,运行在 Hadoop 集群上。它提供了对大规模数据集的随机、实时读/写访问,并且能够高效地存储和处理结构化数据。HBase 的设计灵感来源于 Google 的 Bigtable 论文。

qq_33240556的博客 803

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

初识HBase

1. HBase简介 Apache HBase™ is the Hadoop database, a distributed, scalable, big data store. HBase is a type of "NoSQL" database. HBase 是一个分布式、可伸缩的Hadoop 数据库,HBase是在HDFS(分布式文件系统)的基础之上构建的,所以HBase能存储海量的数据。 HBase是一个NoSQL数据库,一般用它来存储海量的数据;...

MusicDancing的博客 425

hbase轻量级中间件simplehbase v0.9简介

[url]https://github.com/zhang-xzhi/simplehbase/[/url] [url]https://github.com/zhang-xzhi/simplehbase/wiki[/url] ### v0.9 新增 支持HTable如下使用方式,对HTable可以定时flush。 主要场景: 批量写入,但是flush可以配置为指定时间间隔进行。 ...

zhang_xzhi's blog 266

hbase轻量级中间件simplehbase v0.2简介

[url]https://github.com/zhang-xzhi/simplehbase/[/url] [url]https://github.com/zhang-xzhi/simplehbase/wiki[/url] simplehbase简介 simplehbase是java和hbase之间的轻量级中间件。 主要包含以下功能。 数据类型映射:java类型和hbase...

zhang_xzhi's blog 188

hbase ORM simplehbase v0.6简介

https://github.com/zhang-xzhi/simplehbase/https://github.com/zhang-xzhi/simplehbase/wikisimplehbase是java和hbase之间的轻量级中间件。主要包含以下功能。* 数据类型映射:java类型和hbase的bytes之间的数据转换。* 简单操作封装:封装了hbase的put,g...

weixin_34240657的博客 181

Phoenix实现用SQL查询HBase

博客已转移,请借一步说话,http://www.daniubiji.cn/archives/111 HBase,一个NoSQL数据库,可存储大量非关系型数据。 HBase,可以用HBase shell进行操作,也可以用HBase Java api进行操作。HBase虽然是一个数据库,但是它的查询语句,很不太好用。要是能像使用Mysql等关系型数据库一样用sql语句操作HBase,那...

weixin_30337157的博客 593

浅淡HBase的ACID

http://archfan.sinaapp.com/2012/04/18/acid-in-hbase/ 浅淡HBase的ACID 作者: Neaton 日期: 2012 年 4 月 18 日 发表评论 (0) 查看评论 众所周知,ACID是指原子性(Atomicity),一致性(Consistency),隔离性(Isolation)和持久性(Durability)。 HB...

看的恐惧 959

Hbase JDBC 中间件 phoenix 实现sql查询hbase

以下为github发布: https://github.com/forcedotcom/phoenix

tsy0614的专栏 936

Class org.apache.hadoop.hive.hbase.HBaseSplit not found

在hive-site.xml加上 &lt;property&gt; &lt;name&gt;hive.aux.jars.path&lt;/name&gt; &lt;value&gt;file:///opt/modules/hive/hive-0.9.0/lib/hive-hbase-handler-0.9.0.jar,file:///opt/modules/hive/hive-0...

weixir123的博客 728
上一篇: onetomany级联删除异常
下一篇: (转载)hbase轻量级中间件simplehbase v0.1简介
weixir123
博客等级 码龄16年 1粉丝 207原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值