十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
https://github.com/zhang-xzhi/simplehbase/
https://github.com/zhang-xzhi/simplehbase/wiki
simplehbase是java和hbase之间的轻量级中间件。
主要包含以下功能。
* 数据类型映射:java类型和hbase的bytes之间的数据转换。
* 简单操作封装:封装了hbase的put,get,scan等操作为简单的java操作方式。
* hbase query封装:封装了hbase的filter,可以使用sql-like的方式操作hbase。
* 动态query封装:类似于myibatis,可以使用xml配置动态语句查询hbase。
* insert,update支持: 建立在hbase的checkAndPut之上。
* hbase多版本支持:提供接口可以对hbase多版本数据进行查询,映射。
* hbase原生接口支持。
## simplehbase示例(SampleMain.java)
### 使用simplehbaseclient操作hbase
SimpleHbaseClient simpleHbaseClient = getSimpleHbaseClient();
//insert one record.
Person one = new Person();
one.setId(1);
one.setName("allen");
one.setAge(30);
one.setGender(Gender.MALE);
simpleHbaseClient.putObject(new PersonRowKey(1), one);
//insert another record.
Person two = new Person();
two.setId(2);
two.setName("dan");
two.setAge(31);
two.setGender(Gender.FEMALE);
simpleHbaseClient.putObject(new PersonRowKey(2), two);
//search by row key.
Person result = simpleHbaseClient.findObject(new PersonRowKey(1),
Person.class);
log.info(result);
//search by range.
List
new PersonRowKey(1), new PersonRowKey(3), Person.class);
log.info(resultList);
//HQL query.
Map
para.put("id", 1);
resultList = simpleHbaseClient.findObjectList(new PersonRowKey(1),
new PersonRowKey(3), Person.class, "queryById", para);
log.info(resultList);
//dynamic HQL.
para.put("name", "allen");
para.put("age", 0);
resultList = simpleHbaseClient.findObjectList(new PersonRowKey(1),
new PersonRowKey(3), Person.class, "queryByNameAndAge", para);
log.info(resultList);
//batch delete.
simpleHbaseClient.deleteObjectList(new PersonRowKey(0),
new PersonRowKey(100), Person.class);
### 初始化simplehbase
HBaseDataSource hbaseDataSource = new HBaseDataSource();
List
//If run on hbase cluster, modify the following config files.
//If run on hbase stand alone mode, comment out the following config files.
hbaseConfigResources.add(new CachedFileSystemResource(
"sample\\hbase_site"));
hbaseConfigResources
.add(new CachedFileSystemResource("sample\\zk_conf"));
hbaseDataSource.setHbaseConfigResources(hbaseConfigResources);
hbaseDataSource.init();
HBaseTableConfig hbaseTableConfig = new HBaseTableConfig();
//simplehbase config file.
hbaseTableConfig.setConfigResource(new CachedFileSystemResource(
"sample\\myRecord.xml"));
hbaseTableConfig.init();
SimpleHbaseClient tClient = new SimpleHbaseClientImpl();
tClient.setHbaseDataSource(hbaseDataSource);
tClient.setHbaseTableConfig(hbaseTableConfig);
return tClient;
### simplehbase配置xml
包含htable的配置和2个动态查询的配置
select where id greaterequal #id#
name equal #name#
age greater #age#
select where id equal #id#
### 定义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;
}
### 定义该DO对象对应的rowkey
public class PersonRowKey implements RowKey {
private int row;
public PersonRowKey(int row) {
this.row = row;
}
@Override
public byte[] toBytes() {
return Bytes.toBytes(row);
}
}
simphbase simplehbaseviewer使用说明
### simplehbase/simplehbaseviewer版本
0.5.1 / 0.6 / 0.7
### jdk
jdk/jre 1.6
### maven
maven2
### 代码下载
最新simplehbase代码下载。
https://github.com/zhang-xzhi/simplehbase
右下角的download zip。
带版本的simplehbase版本下载。
https://github.com/zhang-xzhi/simplehbase/releases
最新simplehbaseviewer代码下载。
https://github.com/zhang-xzhi/simplehbaseviewer
右下角的download zip。
带版本的simplehbaseviewer版本下载。
https://github.com/zhang-xzhi/simplehbaseviewer/releases
### Simplehbase本地验证
代码下载后,mvn eclipse:eclipse后导入eclipse。
运行simplehbase的test。(Junit)
目前simplehbase默认的测试环境为
hbase.zookeeper.quorum=hbdev-1.alipay.net,hbdev-2.alipay.net,hbdev-3.alipay.net,hbdev-4.alipay.net,hbdev-5.alipay.net
hbase.zookeeper.property.clientPort=2181
zookeeper.znode.parent=/hbase-94
* 1 若无法连接,修改test/zk_conf文件(集成测试使用,修改sample/zk_conf文件(样例程序使用)。
* 2 建测试表。运行CreateTestTable, 新建MyRecordV05表。
* 3 建表成功后,重新运行test,后续运行,不需要重新建立测试表。
* 4 新增htable的配置,请参考既有表的配置。
### Simplehbaseviewer本地验证
安装simplehbase到本地仓库。
在simplehbase项目中,mvn install。
simplehbaseviewer代码下载后,mvn eclipse:eclipse后导入eclipse。
运行Main。
访问http://localhost:4040/hbaseviewer/
看simplehbaseview是否启动正常。
目前simplehbaseviewer默认的测试环境为
hbase.zookeeper.quorum=hbdev-1.alipay.net,hbdev-2.alipay.net,hbdev-3.alipay.net,hbdev-4.alipay.net,hbdev-5.alipay.net
hbase.zookeeper.property.clientPort=2181
zookeeper.znode.parent=/hbase-94
* 1 若无法连接,修改config/zk_conf文件。
* 2 建测试表。运行CreateTestTable, 新建MyRecordV05表。
* 3 建表成功后,重新运行Main。
### Simplehbase jar包依赖
pom依赖,请参考simplehbase的pom文件。
其中,hadoop和hbase可以修改为目前集团hbase使用的版本。
Simplehbase开发测试过程中使用的hbase版本为0.94.0。
理论上,hbase0.92也可以使用,但是未经测试,可以跑test进行测试。
### Simplehbaseclient配置
SimpleHbaseClient为simplehbase的核心接口。
Java方式配置可以参考simplehbase的SampleMain。
Spring方式配置可以参考simplehbaseviewer的
\hbaseviewer\WEB-INF\spring\simplehbase.xml
如何配置可以参考或直接查看代码:
https://github.com/zhang-xzhi/si ... -%E9%85%8D%E7%BD%AE
### doc
* https://github.com/zhang-xzhi/simplehbase/wiki
* https://github.com/zhang-xzhi/simplehbaseviewer/wiki
* simplehbase下载后simplehbase\doc
另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。