• 四 HBase 客户端设置缓存优化查询。


    其实查询无非是一个 HBase 的 RPC 计算公式 、然后给API 提供值。
    RPCs = (Rows * Cols per Row) / Min(Cols per Row, Batch Size)/ Scanner Caching 。

    Hadoop的MR运算中,Hbase可以作为输入数据源参与运算,其中作为HTable的迭代器Scan有几个使用技巧

    涉及的方法如下:

    public void setBatch(int batch)public void setCaching(int caching)public void setCacheBlocks(boolean cacheBlocks)

    public void setBatch(int batch) :

    为设置获取记录的列个数,默认无限制,也就是返回所有的列

    public void setCaching(int caching):

    每次从服务器端读取的行数,默认为配置文件中设置的值

    public void setCacheBlocks(boolean cacheBlocks):

    为是否缓存块,默认缓存,我们分内存,缓存和磁盘,三种方式,一般数据的读取为内存->缓存->磁盘,当MR的时候为非热点数据,因此不需要缓存

    因此在MR的时候最好设置如下:

    scan.setCacheBlocks(false);
    scan.setCaching(200);//大了占内存,但是rpc少
    scan.setBatch(6);//你需要的列
    在查询的时候,按照查询的列数动态设置batch,如果全查,则根据自己所有的表的大小设置一个折中的数值,caching就和分页的值一样就行。

    当caching和batch都为1的时候,我们要返回10行具有20列的记录,就要进行201次RPC,因为每一列都作为一个单独的Result来返回,这样是我们不可以接受的。





    God has given me a gift. Only one. I am the most complete fighter in the world. My whole life, I have trained. I must prove I am worthy of someting. rocky_24
  • 相关阅读:
    博客园自动生成目录及页面美化
    Maven个人手册
    log4j日志工具
    redis教程(整理中)
    linux集群时钟问题
    Flex远程访问获取数据--HTTPService
    gm: error while loading shared libraries: libpng15.so.15: cannot open shared object file: No such file or directory
    SecureCRT中 secureCRT使用VIM时对语法高亮
    openresty安装
    FlashBuilder 4.6序列号破解
  • 原文地址:https://www.cnblogs.com/rocky24/p/e1d27c2b30e5ae854fc0509d4a8a82dc.html
Copyright © 2020-2023  润新知