Hbase计数器可以用于统计用户数,点击量等信息

基本操作


可以使用incr操作计数器,incr语法格式如下:

incr '<table>', '<row>', '<column>', |<increment-value>|

然后使用get_counter可以获取对应的计数器的值

不用初始化计数器,第一次使用计数器时,计数器被自动设置为0

eg:

对于wishTest1表

incr 'wishTest1','2','score:Math',1

incr 'wishTest1','2','score:Math',1

get_counter 'wishTest1','2','score:Math'

结果如下:

hbase(main):004:0> incr 'wishTest1','2','score:Math',1
COUNTER VALUE = 1 hbase(main):005:0> incr 'wishTest1','2','score:Math',1
COUNTER VALUE = 2 hbase(main):007:0> get_counter 'wishTest1','2','score:Math'
COUNTER VALUE = 2 hbase(main):008:0>

增大计数的递增值:

hbase(main):001:0> incr 'wishTest1','2','score:Math',10
COUNTER VALUE = 12 hbase(main):002:0> incr 'wishTest1','2','score:Math',10
COUNTER VALUE = 22 hbase(main):003:0> get_counter 'wishTest1','2','score:Math'
COUNTER VALUE = 22

使用API操作计数器


使用table.incrementColumnValue()

eg:

     String tableName = "wishTest1";
HTablePool pool = new HTablePool(cfg, 1000);
try {
long count1 = pool.getTable(tableName).incrementColumnValue(Bytes.toBytes("2"),Bytes.toBytes("score"),Bytes.toBytes("Math"),1);
long count2 = pool.getTable(tableName).incrementColumnValue(Bytes.toBytes("2"),Bytes.toBytes("score"),Bytes.toBytes("Math"),1);
long currentCount = pool.getTable(tableName).incrementColumnValue(Bytes.toBytes("2"),Bytes.toBytes("score"),Bytes.toBytes("Math"),0);
System.out.println("count1: "+count1);
System.out.println("count2: "+count2);
System.out.println("currentCount: "+currentCount);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

输出:

count1: 23
count2: 24
currentCount: 24

Hbase 计数器的更多相关文章

  1. hbase计数器

    1 计数器 计数器可以方便.快速地进行计数操作,而且避免了加锁等保证了原子性的操作.   1.1 Java API 操作 HBase 计数器 public Result increment(final ...

  2. HBase - 计数器 - 计数器的介绍以及使用 | 那伊抹微笑

    博文作者:那伊抹微笑 csdn 博客地址:http://blog.csdn.net/u012185296 itdog8 地址链接 : http://www.itdog8.com/thread-215- ...

  3. HBase之计数器

    HBase计数器 #创建counters表 列族['daily','weekly','monthly'] hbase(main):001:0> create 'counters','daily' ...

  4. Hbase学习04

    3.2.4 反向时间戳 反向扫描API HBASE-4811(https://issues.apache.org/jira/browse/HBASE-4811)实现了一个API来扫描一个表或范围内的一 ...

  5. HBase常用shell操作

    行(row),列(Column),列蔟(Column Family),列标识符(Column Qualifier)和单元格(Cell) 行:由一个个行键(rowkey)和一个多个列组成.其中rowke ...

  6. hbase开发实例

    1.put/checkAndPut package com.testdata; import java.io.IOException; import org.apache.hadoop.conf.Co ...

  7. HBase与MongDB等NoSQL数据库对照

    HBase概念学习(十)HBase与MongDB等NoSQL数据库对照 转载请注明出处: jiq•钦's technical Blog - 季义钦 一.开篇 淘宝之前使用的存储层架构一直是MySQL数 ...

  8. HBase Shell 常见操作

    1.一般操作 status 查看状态 version 查看HBase版本 2.DDL操作 create 'member','member_id','address','info' 创建了一个membe ...

  9. HBase使用场景和成功案例 (转)

    HBase 使用场景和成功案例 有时候了解软件产品的最好方法是看看它是怎么用的.它可以解决什么问题和这些解决方案如何适用于大型应用架构,能够告诉你很多.因为HBase有许多公开的产品部署,我们正好可以 ...

随机推荐

  1. Jquery中的事件绑定$(&quot;#btn&quot;).bind(&quot;click&quot;,function(){ })

    Jquery中的事件绑定:$("#btn").bind("click",function(){  }) 由于每次都这么调用太麻烦,所以jquery就用$(&qu ...

  2. 一种解决的方法:CGContextSaveGState: invalid context 0x0

    遇到这个问题找了好久答案,最后排错排出来了 CGContextSaveGState: invalid context 0x0. This is a serious error. This applic ...

  3. Meth | phpstorm 2016.2 的最新破解方法(截止2016-8-1)

    今天刚更新了phpstorm 2016.2版本,发现网上提供的破解地址都有问题,即*.lanyus.com及*.qinxi1992.cn下的全部授权服务器已遭JetBrains封杀. 最后网上找到一个 ...

  4. 关于Linux下面msyql安装后并未设置初始密码,但是登录报错“Access denied for user 'root'@'localhost' (using password: NO)”的解决方案

    如上图:首先我安装mysql的时候并没有设置密码,但是就是登不进去,百度了一下,解决方案如下: 解决方案地址:http://zhidao.baidu.com/link?url=7QvuOKtfRdMT ...

  5. c#字符串驻留机制

    http://www.cnblogs.com/instance/archive/2011/05/24/2056091.html

  6. centos 6.X 安装输入法

    1.打开终端 su 输入 密码 yum install "@Chinese Support" 2.接下来是启用中文输入法的操作 系统 ->首选项 ->输入法 3.在弹出 ...

  7. poj3278 BFS入门

    M - 搜索 Crawling in process... Crawling failed Time Limit:2000MS     Memory Limit:65536KB     64bit I ...

  8. USACO5.4-TeleCowmunication

    题目大意:给出一个无向图,要求删除尽量少的点,使给定的2点间不再连通,并输出字典序最小的方案题型:图论-网络流此题难点在于建图,后面就是套网络流的模板.将点看成边,例如第i个点可以看成一条有向边< ...

  9. 【USACO 3.2.5】魔板

    [描述] 在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板.这是一张有8个大小相同的格子的魔板: 1 2 3 4 8 7 6 5 我们知道魔板的每一个方格都有一种颜色.这8种颜色用前8个 ...

  10. Objective-C中的协议(Protocol)和类别(Category)

    1.什么是协议? 2.协议与类别的声明和使用 1.什么是协议? 在Objective-C中,不支持多继承,即不允许一个类有多个父类,但是OC提供了类似的实现方法,也就是协议.协议有点类似于Java里的 ...