• 四 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
  • 相关阅读:
    spring-boot-swagger2 使用手册
    mall整合Swagger-UI实现在线API文档
    MyBatis Generator 详解
    1046 划拳 (15分)
    1043 输出PATest (20分)
    1042 字符统计 (20分)
    1041 考试座位号 (15分)
    1040 有几个PAT (25分)
    1039 到底买不买 (20分)
    1038 统计同成绩学生 (20分)
  • 原文地址:https://www.cnblogs.com/rocky24/p/e1d27c2b30e5ae854fc0509d4a8a82dc.html
Copyright © 2020-2023  润新知