学习HBase一段时间后,我认为HBase中比较常用,同时也是必须掌握的两个API是Scan和Filter。如下是我的理解:

1.Scan  ---- 扫描类

作用:用来对一个指定Table进行按行扫描,从而得到属于[起始行健,终止行健)的扫描结果

使用场合:单纯的扫描用途;用于MapReduce计算的输入

2.Filter --- 过滤类

作用:用来提前在Server端,对要返回的数据,按照定义好的要求进行过滤;从而降低从Server到Client的数据量,进而降低对网络IO的影响

使用场合:与Scan配合使用

种类:有HBase定义好的几种Filter,也有提供基于FilterBase进行自定义过滤器的方法。特别要注意的是:Filter的作用是过滤掉东西,而不是保留东西。因此其返回true,则意味着成功过滤掉了;返回false,表示没有被过滤掉。

3.举例:

HTable t = new HTable(conf, "twits");
        Scan s = new Scan(startRowkey, endRowkey);  //构造Scan对象,此对象会返回[startRowkey,endRowkey)范围的记录。特别的,HBase里面的行健是按照字典顺序排列的(可以和lucene里面的索引的顺序进行类比吧?);而且startRowkey和endRowkey也无须真实存在,HBase会自动找到最靠近其的实际rowkey作为边界
        //当然,这里还可以加入过滤器,比如:s.setFilter(具体的Filter对象实例);

ResultScanner rs = t.getScanner(s); //获得扫描后的结果集
        for(Result r:rs) { //每一行的扫描结果,记录在Result中;
            for(KeyValue kv:r.raw()) {//这里就体现了HBase中的存储实际上是 嵌套的MAP 的含义了。
                System.out.println("Rowkey is " + Bytes.toString(kv.getRow()));
                System.out.println("family is " + Bytes.toString(kv.getFamily()));
                System.out.println("qualify is " + Bytes.toString(kv.getQualifier()));
                System.out.println("timestamp is " + kv.getTimestamp());    
                System.out.println("value is " + Bytes.toString(kv.getValue()));
            }
        }

最新文章

  1. 转:WebService通用接口
  2. Apache—DBUtils框架
  3. Python全栈--6.1-match-search-findall-group(s)的区别以及计算器实例
  4. 对于程序开发者看书(指实在的书而不是PDF)的好处。(个人看法而已)
  5. MD5加密(16/32)
  6. layer.js定制弹窗
  7. 黄聪:wordpress如何获取当前页面的URL
  8. JAVA 方法或者类的注释快捷键
  9. 转】使用Maven编译项目遇到——“maven编码gbk的不可映射字符”解决办法
  10. MySQL 127.0.0.1和localhost本质区别
  11. Android版本判断
  12. Template Method 模板方法
  13. uva 10222 - Decode the Mad man
  14. 使用xtrabakcup 备份inodb数据库
  15. 宣布正式发布 Biz Talk Services、Azure Active Directory 和 Traffic Manager, 同时发布 Azure Active Directory 高级版预览
  16. 【转】Oracle + PHP Cookbook(php oracle clob 长度超过4000如何写入)
  17. 》》豆瓣API
  18. shell脚本补缺
  19. PyQt5--MessageBox
  20. caffe, caffe2, paddlepaddle, tensorflow对于cuda,cudnn,protobuf依赖的纠葛

热门文章

  1. HDU 4251 The Famous ICPC Team Again(划分树)
  2. elasticsearch REST api
  3. MySQL判断中文字符的方法(转)
  4. Java 根据年月日精确计算年龄
  5. ARM32 Linux kernel virtual address space
  6. DOTween教程
  7. VBA Collection用法总结
  8. 遨游maxthon打开页面一片黑色,百度地图等黑屏解决办法
  9. 用js怎么控制submit提交表单
  10. log4j教程 6、Logger方法