`
dalan_123
  • 浏览: 86900 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

HBase系列四--计数器

阅读更多
一、计数器
     在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 2.0参考手册

    HBase 2.0作为该数据库的一个重大更新版本,提供了一系列的新特性、改进和性能增强。 HBase 2.0参考手册是一份官方文档,它详细介绍了该版本的所有功能、特性以及基本命令。这份手册适合于2.0.3版本的HBase,它为...

    Cassandra与HBase系统架构比对.pdf

    Cassandra提供了一系列基本的API来实现数据的增删改查操作,主要包括: - **CRUD**:基本的创建(Create)、读取(Read)、更新(Update)和删除(Delete)操作。 - **Consistency Level**:一致性级别,包括ONE、...

    Hadoop权威指南---中文版

    - **计数器**:解释了计数器在MapReduce中的作用,以及如何使用它们来监控作业的状态。 - **排序**:讨论了如何在MapReduce中实现排序操作。 - **联接**:介绍了MapReduce中实现数据联接的方法。 - **次要数据的分布...

    狂神说-Redis完整版笔记

    阿里巴巴作为大型电商平台,采用了一系列的数据库解决方案,包括自研的MySQL变体、Redis、MongoDB、FastDFS等,实现了不同业务场景下的高效数据处理。 总结来说,Redis作为NoSQL数据库的一员,因其高性能、易扩展和...

    Hadoop权威指南---中文版归纳.pdf

    - **Apache Hadoop项目**:包括Hadoop Distributed File System(HDFS)和MapReduce,以及一系列相关的子项目,如HBase、ZooKeeper等。 2. **MapReduce简介** - **MapReduce模型**:通过Map和Reduce两个主要阶段...

    【国开搜题】国家开放大学 一网一平台 24春数据库应用试卷包02 期末考试押题试卷.docx

    计数器:正确。 - D. 限期使用:不太适合列存储数据库的特点。 **8. HBase 的特性** - **知识点概述:** - HBase 是一个分布式列存储数据库。 - **选项解析:** - A. 高可靠性:正确。 - B. 高性能:正确。 ...

    完整版大数据云计算课程 Hadoop数据分析平台系列课程 Hadoop 05 Hadoop API开发 共32页.pptx

    【Hadoop大数据云计算课程概述】 本课程主要涵盖了Hadoop大数据分析平台的相关知识,特别是...这为深入研究Hadoop生态系统中的其他组件,如Pig、HBase和Hive,打下了坚实的基础,使学员具备大数据分析平台的全面技能。

    .新浪微博.构建高性能的微博系统

    - **其他NoSQL解决方案**:还包括Cassandra(适用于大规模分布式环境)、HBase(基于Hadoop的列族数据库)等。 #### 缓存层 - **Redis**:作为一种高性能的键值存储系统,Redis在新浪微博的架构中扮演了重要角色。...

    Redis.docx

    然而,对于需要复杂查询或事务支持的场景,Redis 可能不是最佳选择,此时可能需要考虑文档型数据库(如 MongoDB)、列式存储(如 HBase)或图数据库(如 Neo4j)。 总的来说,NoSQL 数据库为应对大规模数据和高性能...

    redis数据库

    这些数据库适合Web应用,其数据模型由一系列键值对组成,对于数据结构要求不严格的应用非常适用。 4. **图形(Graph)数据库**:如Neo4J、InfoGrid、InfiniteGraph等。这类数据库适用于社交网络等需要复杂图形结构处理...

    2019最新BAT大数据面试题

    在大数据领域,尤其是在知名的互联网公司如百度(Baidu)、阿里巴巴(Alibaba)和腾讯(Tencent,简称BAT)中,面试通常会涉及到一系列深入的技术问题,以评估候选人的专业技能和解决问题的能力。以下是对2019年BAT...

Global site tag (gtag.js) - Google Analytics