zoukankan      html  css  js  c++  java
  • hbasefilter使用

    使用filter需要guava jar包

    The Guava project contains several of Google's core libraries that we rely on in our Java-based projects: collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.

    否则出错:java.lang.NoClassDefFoundError: com/google/common/base/Preconditions

    scan时候出现

    java.lang.RuntimeException: org.apache.hadoop.hbase.regionserver.LeaseException: org.apache.hadoop.hbase.regionserver.LeaseException: lease '464943507681458694' does not exist

    hbase客户端每次和regionserver交互的时候,都会在服务器端生成一个租约(Lease),租约的有效期由参数hbase.regionserver.lease.period确定。
    客户端去regionserver取数据的时候,hbase中存得数据量很大并且很多region的时候的,客户端请求的region不在内存中,或是没有被cache住,需要从磁盘中加载,如果这时候加载需要的时间超过hbase.regionserver.lease.period所配置的时间,并且客户端没有和regionserver报告其还活着,那么regionserver就会认为本次租约已经过期,并从LeaseQueue从删除掉本次租约,当regionserver加载完成后,拿已经被删除的租约再去取数据的时候,就会出现如上的错误现象。(http://liuskysun.blog.163.com/blog/static/99812978201111195301995/

    对应我的使用场景,只需要制定的row,取column page即可,因此使用Get 对象而不是Scan对象,添加一个过滤条件而不是组合row和columnPage作为过滤列表。 

    hbase数据的排序方式:

    HBase Table as Data Structures
    • A table maps rows to its families
    – SortedMap(Row  List(ColumnFamilies))
    • A family maps column names to versioned values
    – SortedMap(Column  SortedMap(VersionedValues))
    • A column maps timestamps to values
    – SortedMap(Timestamp  Value)
    An HBase table is a three-dimensional sorted map
    (row, column, and timestamp)

    row,columnFamily 和 column都是正序排,version按时间倒序排

    目前没有发现方法可以获取column的倒序(大->小),且使用不使用filter消耗时间都差不多,感觉时间消耗都在把冷数据调入内存而不是单独取出对应范围的column

  • 相关阅读:
    课堂作业
    读书计划
    软件工程----11软件演化
    软件工程----10软件测试
    软件工程概论第五章--软件工程中的形式化方法
    软件工程概论第四章--需求工程
    软件工程概论第三章--软件项目管理
    软件工程概论第二章--软件过程
    软件工程概论第一章--概述
    在jsp里面如何用按钮跳转(转自http://oracleabc-126-com.iteye.com/blog/941739)自己留着学
  • 原文地址:https://www.cnblogs.com/shenguanpu/p/2586278.html
Copyright © 2011-2022 走看看