`
jianzong2000
  • 浏览: 56048 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

hbase的Scan和Get的blockCacheHitRatio区别

 
阅读更多

看regionserver的监控页面,发现顺序取值使用Get时的blockCacheHitRatio较高。

而使用Scan时blockCacheHitRatio低了不少。查看源代码发现

参考AbstractHFileReader.Scanner类(HFileScanner的子类)中。

//这里的blockBuffer,即是block

protected ByteBuffer blockBuffer;

protected boolean cacheBlocks;

在一个Scan中读取多条数据时会从blockBuffer中直接读取,所以就不会以blockCacheHitRatio有贡献。

而使用Get读数据时,每条数据都会新实例化一个Scan,这个blockBuffer是空,每次都需要重新读取。如果这个block在缓存中存在的话,则会增加blockCacheHitRatio

分享到:
评论

相关推荐

    Hbase的JavaAPI

    通过`Table`的`getScanner(Scan scan)`方法创建一个扫描器,`Scan`对象可以设置扫描范围(行键)、过滤器等。然后使用`ResultScanner.next()`或`ResultScanner.iterator()`遍历结果。 5. **批处理操作** 使用`...

    HBase in Practise: 性能、监控和问题排查

    HBase在不同版本(1.x, 2.x, 3.0)中针对不同类型的硬件(以IO为例,HDD/SATA-SSD/PCIe-SSD/Cloud)和场景(single/batch, get/scan)做了(即将做)各种不同的优化,这些优化都有哪些?如何针对自己的生产业务和...

    HBase最佳实践–Scan用法大观园

    也算是Scan系列的其中一篇吧,后面对于Scan还会有一篇结合HDFS分析HBase数据读取在HDFS层面是怎么一个流程,敬请期待。HBase中Scan从大的层面来看主要有三种常见用法:ScanAPI、TableScanMR以及SnapshotScanMR

    Hbase调用JavaAPI实现批量导入操作.docx

    在大数据时代,Hbase 作为一个分布式、面向列的 NoSQL 数据库,广泛应用于大规模数据存储和处理中。同时,JavaAPI 作为一个强大且流行的编程语言,广泛应用于各种软件开发中。本文旨在介绍如何使用 JavaAPI 调用 ...

    hbase性能测试.docx

    在对HBase进行性能测试时,我们关注的关键指标包括数据读写速度、系统资源消耗以及MapReduce框架的运行效率。以下是对文档中提到的几个重要性能指标的详细解读: 1. **顺序写入(Sequential Write)**: - **FILE:...

    HbaseTemplate 操作hbase

    HbaseTemplate的`get`方法接受RowKey作为参数,返回一个Result对象,其中包含了该行的所有列族和列的信息。 4. **执行(execute)操作**:`execute`方法是一个更为灵活的接口,允许我们传递一个HBase操作的回调函数...

    HIVE和HBASE区别

    "HIVE和HBASE区别" HIVE和HBASE是两种基于Hadoop的不同技术,分别是数据仓库和Key/Value系统。它们之间有很多区别,包括设计理念、应用场景、查询语言等方面。 HIVE HIVE是一个构建在Hadoop基础设施之上的数据...

    hbase shell命令详解

    HBase Shell是HBase提供的一个交互式命令行工具,用于管理和操作HBase数据库。在这里,我们将深入探讨HBase Shell的各种命令。 1. **创建表(create)**: 使用`create '表名', '列族'`命令来创建表,如`create '...

    基于集群的HBase安装和配置

    ### 基于集群的HBase安装和配置 #### Zookeeper简介 Zookeeper作为Hadoop生态中的关键组件,主要用于提供高可用性和分布式协调服务。它能够有效地管理Hadoop集群中的各种资源和服务,例如Hadoop NameNode管理和...

    hbase安装和使用

    4. **配置HBase**:编辑`$HBASE_HOME/conf/hbase-site.xml`文件,设置HDFS为HBase的默认文件系统,并配置其他必要参数,如`hbase.rootdir`(HBase的数据目录)和`hbase.zookeeper.quorum`(Zookeeper服务器列表)。...

    hbase资料api

    HBase数据查询API HBase是一种分布式的、面向列的NoSQL数据库,主要应用于存储大量的半结构化数据。HBase提供了多种查询方式,包括单...这些示例代码展示了如何使用Get和Scan对象来查询数据,包括单条查询和批量查询。

    hbase备份和数据恢复

    在大数据领域,HBase是一个基于Hadoop的分布式数据库,它为海量结构化和半结构化数据提供了高可靠性、高性能的存储方案。HBase备份和数据恢复是系统运维中至关重要的一环,确保了业务连续性和数据安全性。同时,...

    HBASE API

    HBase的查询主要通过`Get`对象实现,`Get`对象可以指定行键和列过滤条件。调用`HTable`的`get()`方法,传入`Get`对象,即可获取对应的数据。对于更复杂的查询需求,如范围扫描或使用过滤器,可以使用`Scan`对象。 5...

    hbase java api 访问 查询、分页

    本文将深入探讨如何使用HBase Java API进行数据访问和分页查询。 首先,我们要了解HBase的基本结构,它是由行(Row)、列族(Column Family)、列(Column)和时间戳(Timestamp)组成。在Java API中,我们主要通过...

    hbase 的java代码 集合 hbase 0.96

    在Java中,我们通过HBase客户端API与HBase交互,这些API包括了`HBaseAdmin`、`HTable`、`Put`、`Get`、`Scan`等核心类。 1. **连接HBase**:在Java代码中,我们使用`HBaseConfiguration.create()`来创建一个配置...

    hbase入门和使用

    HBase入门和使用知识点总结: 1. HBase基本介绍: HBase是建立在Hadoop文件系统(HDFS)之上的一种开源、分布式、可扩展的非关系型数据库。它是一种列式存储系统,模仿Google的Bigtable模型,适用于海量数据的实时...

    spring操作hbase demo

    ResultScanner scanner = hbaseTemplate.getScanner("User", scan); for (Result result : scanner) { User user = new User(); user.setRowKey(result.getRow()); user.setId(new String(result.getValue...

    java操作Hbase之从Hbase中读取数据写入hdfs中源码

    在Java编程环境中,操作HBase并将其数据写入HDFS(Hadoop Distributed File System)是一项常见的任务,特别是在大数据处理和分析的场景下。本篇将详细介绍如何使用Java API实现这一功能,以及涉及到的关键技术和...

    hbase用于查询客户端工具

    Phoenix将SQL语句转换为HBase的Scan操作,适合那些习惯使用SQL语法的开发人员。Phoenix支持索引、连接、子查询等特性,提高了开发效率。 5. **HBAdmin**:HBAdmin是HBase的管理工具,用于执行管理任务,如创建、...

Global site tag (gtag.js) - Google Analytics