`
wx1569578408
  • 浏览: 71586 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Hbase 学习(四) hbase客户端设置缓存优化查询

 
阅读更多
我们在用hbase的api对hbase进行scan操作的时候,可以设置caching和batch来提交查询效率,那它们之间的关系是啥样的呢,我们又应该如何去设置?

首先是我们的客户端代码。

image

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

image

下面展示的是当batch=3,caching=6时候的图,是一次RPCs的传递的数据。

image

接着我们继续看下图

image

一次查询20条记录的话,只需要3次RPCs,列数在10列以内的数据,取20条,20/10即可,为什么是3呢,因为还有一次RPC是用来确认的。

有个公式RPCs = (Rows * Cols per Row) / Min(Cols per Row, Batch Size)/ Scanner Caching 。

这就好说啦,这样我们就可以用来优化我们的scan查询了,在查询的时候,按照查询的列数动态设置batch,如果全查,则根据自己所有的表的大小设置一个折中的数值,caching就和分页的值一样就行。


转载于:https://my.oschina.net/u/923508/blog/413123

分享到:
评论

相关推荐

    Hbase学习总结.rar

    ### 四、HBase优化 1. **行键设计**:合理设计行键,避免热点问题,例如使用反向时间戳+哈希值的方式。 2. **列族和列的设计**:减少列族数量,控制列的数量,降低内存开销。 3. **缓存配置**:调整BlockCache和...

    HBase学习利器:HBase实战

    - **第6章:替代HBase客户端**:介绍除了Java API之外的其他语言接口(如Thrift、RESTful API等),以及如何使用这些客户端进行开发。 - **第三部分:示例应用程序** - **第7章:构建实际应用**:通过一系列具体...

    HBase最佳实践-读性能优化策略

    根据这些场景,可以针对客户端优化、服务器端优化、列族设计优化以及HDFS相关优化四个方面进行具体的性能提升。 在客户端优化方面,首先需要考虑的是scan缓存设置是否合理。scan缓存是客户端在进行scan操作时用来...

    hbase查询分页分页

    - 可能还包括性能优化,如缓存部分查询结果,减少对HBase的压力。 总的来说,HBase的分页查询涉及到对数据分布和查询策略的理解,以及在代码层面上的巧妙设计。掌握好这些技巧,能帮助我们在处理大规模数据时,更...

    hbase-client

    总结,HBase客户端是连接HBase集群的关键,无论是在开发环境中还是生产环境中,都需要熟练掌握客户端的使用和优化。了解并熟练运用HBase的各种客户端工具,可以极大地提升数据处理的效率和质量,更好地发挥HBase在...

    hbase的学习

    【HBase 学习】 HBase 是一个分布式、列式存储的开源数据库,基于 Google BigTable 的设计理念,专为处理大规模结构化和半结构化数据而设计。它运行在 HDFS(Hadoop 分布式文件系统)之上,提供高可靠性和高性能的...

    HBase写性能优化策略

    业务场景如果允许,可以开启异步批量提交,即设置setAutoFlush(false),通过在客户端缓存一定量的数据后批量提交给RegionServer。 第三点,关注Region的数量是否合理。Region是HBase中进行数据分布和负载均衡的单位...

    hbase学习课件

    ### HBase 学习知识点详解 #### 一、HBase 概述 HBase 是一个分布式、可扩展的大规模数据存储系统,它基于 Google 的 BigTable 模型设计并实现。作为一个非关系型数据库(NoSQL),HBase 提供了高可靠性和高性能的...

    hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包

    5. **客户端连接**:HBase提供了命令行接口(HBase Shell)和Java API,可以用来交互式操作HBase或在应用程序中集成。 ### HBase的数据模型和操作 1. **创建表**:使用`create`命令创建表,指定列族。 2. **插入...

    HBase源代码 hbase-0.98.23

    总之,通过对hbase-0.98.23源代码的深入学习,我们可以了解到HBase如何实现数据的分布式存储、查询、分区管理以及容错机制。这对于理解HBase的工作原理,优化系统性能,甚至进行二次开发具有极大的价值。然而,HBase...

    [原创]HbaseClient

    5. 客户端缓存:为了提高性能,HbaseClient使用了缓存策略,如Cell缓存和RowCache。Cell缓存将最近访问的数据存储在内存中,减少对RegionServer的请求;RowCache则是预加载整个行到内存,适用于频繁读取同一行的情况...

    hbase的rowkey设计与hbase的协处理器运用.docx

    2. 根据 hbase:meta 所在 RegionServer 的访问信息,客户端会将该元数据表加载到本地并进行缓存。 3. 根据数据所在 RegionServer 的访问信息,客户端会向该 RegionServer 发送真正的数据读取请求。 RegionServer 的...

    hbase的java客户端api操作示例代码.zip

    - 根据应用需求,可以调整HBase的配置参数,比如缓存大小、写入策略等,以提升性能。 10. **HBase Shell命令对比** 虽然此示例代码主要关注Java API,但了解HBase Shell命令(如`create`、`put`、`get`、`scan`和...

    HBase源码分析

    当数据写入HTable时,如果autoFlush设置为false,写操作会被缓存在客户端,直到缓冲区满或者手动触发flush操作。当达到writeBufferSize阈值时,客户端会通过RPC将这些Put操作发送给对应的Region Server。 Region ...

    hbase资料_hbase-default.xml.zip

    5. **文件系统和缓存设置**:`fs.defaultFS`设定默认的HDFS文件系统,`hbase.hregion.blockmultiplier`控制BlockCache的大小,`hbase.hregion.memstore.block.multiplier`则用于控制MemStore的大小。 6. **客户端...

    Hbase性能优化百科全书(csdn)————程序.pdf

    在HBase性能优化的过程中,表设计和RowKey的设计是至关重要的。预分区是表设计的一个重要环节,目的是避免因表的自动split导致的资源消耗和性能影响。预分区可以根据业务需求预先设定rowkey的范围,比如在例子中,...

    HBase性能优化指南

    #### HBase客户端优化 - **批量操作**: 使用批量get和put操作来减少对服务器的往返次数。 - **缓存使用**: 在客户端适当使用缓存来减少访问HBase集群的次数。 #### 正确性保证 - **HDFS校验和验证**: 为保证数据...

    hbase 2.0参考手册

    HBase 2.0参考手册涵盖了如何使用HTTPS和SPNEGO进行Kerberos认证来保护Web用户界面,以及如何为HBase客户端提供安全访问。手册还包括了为简单用户访问HBase的指南,以及如何保护对HDFS和ZooKeeper的访问。 在架构...

Global site tag (gtag.js) - Google Analytics