一、计数器
在hbase中,由于针对同一行的记录进行操作时,已经提供行级锁;这样的功能会带来大量资源竞争的后果;那么在hbase里面提供一个将列当做计数器的功能
1、计数器
计数器默认不用进行初始化默认值即为0;在计数器进行具体操作时可以添加对应的值;若是用户直接操作则需要使用
Bytes.toLong()--->解码 Bytes.toBytes(long)--->编码 注意编码时需要明确指定对应的参数为long类型;同时若是用户
通过put方法误操作之后,在通过incr操作 则会出现和预期不一致的内容;主要是用于在执行put时将对应的参数当成字符,而非Long
被shell当做字节数组存储,最高位设置成ascii的对应字母,在增加值的最低位字节再转成long类型,这样就会导致结果超出预期
incr : 计数器操作
get : 获取counter的具体内容(十六进制 非格式化内容)
get_counters : 获取counter的具体内容(格式化内容)
2、api
// 创建counter
// 1、创建hbase table
HTableInterface htable = HbaseUtils.getHTable(tableName, config);
// 2、执行incr
//方法参数说明: Row columfamily column incr params
long cnt1 = htable.incrementColumnValue(Bytes.toBytes("20151202"), Bytes.toBytes("daily"), Bytes.toBytes("hits"), 1);
(1)、多计数器
// hbase table
HTableInterface htable = HbaseUtils.getHTable(tableName, config);
// create incremnt
Increment incr = new Increment(Bytes.toBytes("20151202"));
// add params
incr.addColumn(Bytes.toBytes("daily"), Bytes.toBytes("clicks"), 1);
incr.addColumn(Bytes.toBytes("daily"), Bytes.toBytes("hits"), 1);
incr.addColumn(Bytes.toBytes("weekly"), Bytes.toBytes("clicks"), 10);
incr.addColumn(Bytes.toBytes("weekly"), Bytes.toBytes("hits"), 10);
//
Result result = htable.increment(incr);
for(KeyValue kv : result.raw()){
System.out.println(" KV: " + kv +
" Value: " + Bytes.toLong(kv.getValue())
+" Byte Value: " + Bytes.toString(kv.getValueArray())
//+ " String Format Value: " + new String(kv.getValueArray())
);
}
分享到:
相关推荐
HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...
hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包
赠送jar包:hbase-hadoop-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop-compat-1.1.3....
赠送jar包:hbase-prefix-tree-1.1.3.jar; 赠送原API文档:hbase-prefix-tree-1.1.3-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.1.3.pom; ...
phoenix-hbase-2.2-5.1.2-bin.tar.gz
赠送jar包:hbase-metrics-api-1.4.3.jar; 赠送原API文档:hbase-metrics-api-1.4.3-javadoc.jar; 赠送源代码:hbase-metrics-api-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-metrics-api-1.4.3.pom; ...
赠送jar包:hbase-hadoop-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop-compat-1.1.3....
hbase-2.0.2-bin.tar
赠送jar包:hbase-common-1.4.3.jar; 赠送原API文档:hbase-common-1.4.3-javadoc.jar; 赠送源代码:hbase-common-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-common-1.4.3.pom; 包含翻译后的API文档:...
被编译的hive-hbase-handler-1.2.1.jar,用于在Hive中创建关联HBase表的jar,解决创建Hive关联HBase时报FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop....
phoenix-client-hbase-2.2-5.1.2.jar
HBase 元数据修复工具包。 ①修改 jar 包中的application.properties,重点是 zookeeper.address、zookeeper.nodeParent、hdfs....③开始修复 `java -jar -Drepair.tableName=表名 hbase-meta-repair-hbase-2.0.2.jar`
hbase-2.2.6-bin.tar.gz HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所...
hbase-1.2.1-bin.tar.gz.zip 提示:先解压再使用,最外层是zip压缩文件
phoenix-hbase-1.4-4.16.1-bin
Hbase-1.2.4-bin.tar.gz,HBASE的Linux版安装包。Hadoop学习必备
hbase-2.4.17-bin 安装包
hbase-2.0.5-bin.tar.gz
赠送jar包:hbase-common-1.1.2.jar; 赠送原API文档:hbase-common-1.1.2-javadoc.jar; 包含翻译后的API文档:hbase-common-1.1.2-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:groupId:org....