- 浏览: 535097 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
飞天奔月:
public List<String> gener ...
实践中的重构30_不做油漆匠 -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道public class A {
...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在世界的中心呼喚愛 写道在classB ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
在世界的中心呼喚愛 写道在classB的finalize上打断 ...
深入理解ReferenceQueue GC finalize Reference -
在世界的中心呼喚愛:
iteye比较少上,如果可以的话,可以发e-mail交流:ch ...
深入理解ReferenceQueue GC finalize Reference
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
simplehbase配置xml
包含htable的配置和一个动态查询的配置
定义DO对象
定义该htable的rowkey
使用simplehbaseclient操作hbase
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
private static SimpleHbaseClient getSimpleHbaseClient() { HBaseDataSource hbaseDataSource = new HBaseDataSource(); List<String> hbaseConfigFilePaths = new ArrayList<String>(); //hbase配置文件。 hbaseConfigFilePaths.add("sample\\hbase_site"); //zk配置文件。 hbaseConfigFilePaths.add("sample\\zk_conf"); hbaseDataSource.setHbaseConfigFilePaths(hbaseConfigFilePaths); hbaseDataSource.init(); HBaseTableConfig hbaseTableConfig = new HBaseTableConfig(); //simplehbase配置文件。 hbaseTableConfig.setConfigFilePath("sample\\myRecord.xml"); hbaseTableConfig.init(); SimpleHbaseClient tClient = new SimpleHbaseClientImpl(); tClient.setHBaseDataSource(hbaseDataSource); tClient.setHbaseTableConfig(hbaseTableConfig); return tClient; }
simplehbase配置xml
包含htable的配置和一个动态查询的配置
<HBaseTableSchema tableName="MyRecord" defaultFamily="MyRecordFamily"> <HBaseColumnSchema qualifier="id" typeName="int" /> <HBaseColumnSchema qualifier="name" typeName="string" /> <HBaseColumnSchema qualifier="date" typeName="date" /> <HBaseColumnSchema qualifier="gender" typeName="allen.sample.Gender" /> <HBaseColumnSchema qualifier="age" typeName="int" /> </HBaseTableSchema> <statements> <statement id="queryByNameAndAge"> select where id greater #id# <isPropertyAvailable prepend="and" property="name"> name equal #name# </isPropertyAvailable> <isPropertyAvailable prepend="and" property="age"> age greater #age# </isPropertyAvailable> </statement> </statements>
定义DO对象
@HBaseTable(defaultFamily = "MyRecordFamily") public class Person { @HBaseColumn(qualifier = "id") private int id; @HBaseColumn(qualifier = "name") private String name; @HBaseColumn(qualifier = "date") private Date date; @HBaseColumn(qualifier = "gender") private Gender gender; @HBaseColumn(qualifier = "age") private int age; }
定义该htable的rowkey
public class PersonRowKey implements RowKey { private int row; public PersonRowKey(int row) { this.row = row; } @Override public byte[] toBytes() { return Bytes.toBytes(row); } }
使用simplehbaseclient操作hbase
public static void main(String[] args) throws Exception { SimpleHbaseClient simpleHbaseClient = getSimpleHbaseClient(); //插入一条记录。 Person one = new Person(); one.setId(1); one.setName("allen"); one.setAge(30); one.setGender(Gender.MALE); simpleHbaseClient.putObject(new PersonRowKey(1), one); //插入一条记录。 Person two = new Person(); two.setId(2); two.setName("dan"); two.setAge(31); two.setGender(Gender.FEMALE); simpleHbaseClient.putObject(new PersonRowKey(2), two); //按照主键查询。 Person result = simpleHbaseClient.findObject(new PersonRowKey(1), Person.class); log.info(result); //按照范围查询 List<Person> resultList = simpleHbaseClient.findObjectList( new PersonRowKey(1), new PersonRowKey(3), Person.class); log.info(resultList); //动态语句查询 Map<String, Object> para = new HashMap<String, Object>(); para.put("id", 0); resultList = simpleHbaseClient.findObjectList(new PersonRowKey(1), new PersonRowKey(3), Person.class, "queryByNameAndAge", para); log.info(resultList); //动态语句查询 para.put("name", "allen"); para.put("age", 0); resultList = simpleHbaseClient.findObjectList(new PersonRowKey(1), new PersonRowKey(3), Person.class, "queryByNameAndAge", para); log.info(resultList); //删除批量数据。 simpleHbaseClient.deleteObjectList(new PersonRowKey(0), new PersonRowKey(100)); }
评论
2 楼
zhang_xzhi_xjtu
2014-06-05
jdk1.5开始支持annotation
如果用simplehbase需要导入simplehbase的jar
依赖的其他jar在pom里面都有定义。
如果用simplehbase需要导入simplehbase的jar
依赖的其他jar在pom里面都有定义。
1 楼
krystal_0424
2014-06-05
使用annotation需要导入什么jar包?
发表评论
-
hbase分页功能的几种实现方案
2015-01-13 23:52 5453hbase分页功能的几种实现方案。 分页功能是线上系统的常用 ... -
simplehbase v0.98.1开始支持hbase0.98
2014-12-29 21:48 1077https://github.com/zhang-xzhi/s ... -
hbase轻量级中间件simplehbase v1.0简介
2014-12-13 18:55 1400https://github.com/zhang-xzhi/s ... -
hbase put UML图
2014-12-11 23:40 1301create Htable put hbase rpc ... -
hbase开发问题-PooledHTable多次close导致问题
2014-12-11 23:27 2065PooledHTable多次close导致问题 Pooled ... -
hbase的CoprocessorProtocol及一个简单的通用扩展实现V2
2014-12-04 18:00 2109hbase中的CoprocessorProtocol机制. ... -
hbase 0.94.0 0.94.9 0.94.24 功能不兼容初步分析
2014-12-04 16:10 1115hbase 0.94.0 0.94.9 0.94.24 功能不 ... -
simplehbase对JOPO新增xml配置和无配置方式
2014-10-24 22:50 994simplehbase介绍文章如下: https://gith ... -
hbase轻量级中间件simplehbase v0.9简介
2014-07-14 13:57 637https://github.com/zhang-xzhi/s ... -
hbase轻量级中间件simplehbase v0.8简介
2014-04-28 21:44 3769https://github.com/zhang-xzhi/s ... -
hbase开发问题-hbase版本号报错
2014-04-22 19:19 2770由于使用了自定义的classloader,导致报错。 p ... -
HBase Client使用注意点
2014-04-21 12:51 2553HBase Client使用注意点: 1 HTable线程 ... -
hbase开发问题-hbase-0.94.0的ServerCallable callTimeout处理有问题
2014-04-14 22:07 2240读hbase-0.94.0的ServerCallable时,发 ... -
Phoenix和simplehbase功能简单比较
2014-04-02 17:20 1631Phoenix和simplehbase功能简单比较 大数据应 ... -
hbase web console simplehbaseviewer
2014-03-12 19:11 1249https://github.com/zhang-xzhi/s ... -
hbase轻量级中间件simplehbase v0.1简介
2013-10-09 19:29 1557simplehbase尝试简化基于hbase的java应用开发 ... -
hbase的CoprocessorProtocol及一个简单的通用扩展实现V1
2013-08-18 14:15 5304hbase的CoprocessorProtocol及一个简单的 ... -
hbase的基本操作
2013-08-18 14:02 4485本文列举一些hbase的基本操作代码。 package ... -
hadoop_hadoop的一次读取
2013-04-29 13:09 1887一次hadoop的read getFileSystem 代码 ... -
hadoop_hadoop的map reduce
2011-11-09 21:21 1254这个根据功能模块分为 ...
相关推荐
标题“hbase轻量级中间件simplehbase v0.1简介”揭示了我们要讨论的主题——SimpleHBase,它是一个针对Apache HBase的轻量级中间件,版本为v0.1。这个中间件可能是为了简化HBase的使用,提高开发效率而设计的。描述...
simplehbase是java和hbase之间的轻量级中间件。 主要包含以下功能。 数据类型映射:java类型和hbase的bytes之间的数据转换。 简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作方式。 hbase ...
SimpleHbase是一款针对Java开发的轻量级中间件,它主要设计用于简化HBase数据库的操作。这个库提供了数据类型映射、操作封装、查询封装、动态查询、多版本支持、批量操作等一系列功能,使得Java开发者可以更加高效地...
**标题:“HBase轻量级框架Parrot”** 在大数据处理领域,Apache HBase是一个流行的分布式、面向列的NoSQL数据库,它构建于Hadoop之上,提供了实时的随机读写能力。然而,对于某些特定场景,HBase的使用可能过于...
hbase-sdk是基于hbase-client和hbase-thrift的原生API封装的一款轻量级的HBase ORM框架。 针对HBase各版本API(1.x~2.x)间的差异,在其上剥离出了一层统一的抽象。并提供了以类SQL的方式来读写HBase表中的数据。对...
HBase 二级索引 HBase 二级索引是指在 HBase 之上建立的一种二级索引机制,用于提高查询效率。根据华为公布的 HBase 二级索引实现方案,本方案主要参照了该方案,设计了 HBase 的二级索引机制。 知识点一:HBase ...
SimpleHbase1.0,作为一款轻量级的Java与Hbase交互中间件,它的出现极大地简化了Java开发者在处理Hbase数据时的操作流程。这款工具以其高效、易用的特点,深受广大开发者的青睐。下面我们将详细探讨SimpleHbase1.0的...
二级索引在HBase中的应用,是为了弥补其一级索引(RowKey索引)的不足,它为非RowKey字段提供了快速访问的通道。 首先,我们需要理解HBase的一级索引。HBase的表数据是按照RowKey排序存储的,RowKey是唯一标识一条...
CDH 使用 Solr 实现 HBase 二级索引 在大数据处理中,HBase 是一种流行的 NoSQL 数据库,用于存储大量的数据。然而,在查询和检索数据时,HBase 的性能可能不太理想。这是因为 HBase 是基于 Key-Value 的存储方式,...
在IT行业中,尤其是在大数据处理领域,HBase是一个广泛使用的分布式、高性能、列式存储的NoSQL数据库。HBase是建立在Hadoop文件系统(HDFS)之上,为处理大规模数据提供了一个高效的数据存储解决方案。而Spring Data...
public class IndexBuilder3 extends Configured{ public static class MapperIndex extends TableMapper,Put>{ private String tableName; private String columnFamily; private String[] qualifiers;...
### 360HBASE二级索引的设计与实践 #### 背景 在大数据处理领域,特别是面对海量数据(如千亿级别的数据量)时,高效的数据存储与快速查询成为了关键的技术挑战之一。HBase作为一种分布式、面向列的NoSQL数据库...
HBase提供毫秒级的实时读写性能,适用于需要快速响应的应用场景,如物联网、实时监控等。 **9. 客户端API** HBase提供了多种客户端API,包括Java、Python、PHP等,方便开发人员进行数据操作和应用开发。 **10. ZK...
Hbase shell 、Hbase api、Hbase 配置
HortonWorks 介绍HBase的企业级应用,以及HBase最新特性 HortonWorks 介绍HBase的企业级应用,以及HBase最新特性 HortonWorks 介绍HBase的企业级应用,以及HBase最新特性
### HBase二级索引与JOIN知识点详解 #### HBase简介 - **定义**: HBase是一种分布式、面向列的NoSQL数据库系统,它基于Google Bigtable论文实现。 - **底层架构**: HBase的数据存储依赖于Hadoop Distributed File ...