`

[Binospace] HBase性能优化1—使用Filter降低客户端压力

阅读更多

一般我向别人介绍HBase的时候,都会这样说:
Hbase是加强版的Mysql,存储容量更大、逻辑形式更加灵活。至于BigTable那篇论文的内容,它的意义在于提供了一种更加灵活地组织数据的形式。Hbase以Distributed、Sorted RowKey、MultiDimentional作为亮点,吸引了如Facebook、Amazon、Taobao在内的一大批Internet公司的使用。HBase虽然开源,但是要真正使得你的业务run得漂亮,也不是容易的事情。本系列文章的作者,正是在HBase的使用过程中的一种积累。

1、如何更快Scan一个table中所有的的RowKey

  • 建表时确定如果确定table的rowkey范围和大致的分布,在建立表格的时候,确定Region的划分。因为如果不划分Region,请降低参数hbase.hregion.max.filesize的值,让HRegion可以尽快分裂。
  • 为Scan添加FirstKeyOnlyFilter。这样做的好处,可以避免扫描Rowkey时,把所有的column都读取到CLient端。
  • 如果需要读取Rowkey下的部分Column,可以为Get操作增加ColumnCountGetFilter。

 

?View Code JAVA
 
HTable table = new HTable(tableName);
table.setScannerCaching(100);
table.setAutoFlush(false);
Scan s  = new Scan();
s.setFilter(new FirstKeyOnlyFilter());
s.setBatch(100);
ResultScanner rs = table.getScanner(s);
long startTime = System.currentTimeMillis();
System.out.println(startTime);
for (Result rr = rs.next(); rr != null; rr = rs.next()) {
	Get g = new Get(rr.getRow());
	g.setFilter(new ColumnCountGetFilter(100));
	System.out.println(Bytes.toString(rr.getRow()));
	NavigableMap> valueMap = table.get(g).getNoVersionMap();
	for (byte[] family:valueMap.keySet()) {
		int i = 0;
		for (byte[] val: valueMap.get(family).values()) {
			System.out.println(Bytes.toString(val));
		}
	}
}
System.out.println((System.currentTimeMillis()- startTime) + "ms");

文章的脚注信息由WordPress的wp-posturl插件自动生成

分享到:
评论

相关推荐

    HBase性能优化方法总结

    1. **磁盘选择**:HBase对I/O性能要求较高,因此推荐使用SSD硬盘,以减少读写延迟。 2. **内存配置**:合理分配HBase的堆内存,确保足够的空间用于BlockCache和MemStore,降低磁盘访问频率。 3. **网络优化**:使用...

    Hadoop集群(第12期副刊)_Hbase性能优化

    ——HBase性能优化 1、从配置角度优化 1.1 修改Linux配置 Linux系统最大可打开文件数一般默认的参数值是1024,如果你不进行修改并发量上来的时候会出现“Too Many Open Files”的错误,导致整个HBase不可运行,你...

    Hbase可视化客户端.rar

    在使用HBase可视化客户端时,用户需要确保已经安装了HBase集群,并且客户端能够正确连接到集群。连接信息通常包括Zookeeper的地址、端口以及认证信息(如果集群启用了安全性)。一旦连接成功,用户就可以通过图形...

    hbase性能优化

    除了上述提到的优化方法,HBase的性能优化还可以涉及更多的方面,如合理调整HBase配置、分区和负载均衡策略、压缩和存储优化、监控和诊断等。在HBase集群中,还可能通过调整HMaster和HRegionServer的相关参数来...

    Hbase 可视化客户端工具(非phoenix连接)

    本文将详细介绍一个专为HBase设计的可视化客户端工具,该工具不依赖于Phoenix连接,而是直接与HBase服务器通信,支持Hbase 1.x版本,提供类似于PL/SQL的友好界面,使得数据管理和查询变得更加便捷。 首先,这个可视...

    hbase用于查询客户端工具

    在HBase环境中,有多种客户端工具可供开发人员和管理员使用来进行查询和其他操作。以下是一些主要的HBase查询客户端工具及其详细说明: 1. **HBase Shell**:这是HBase自带的一个命令行接口,用户可以通过Java REPL...

    HBase性能优化指南

    ### HBase性能优化知识点汇总 #### HDFS优化 - **存储机制**: HBase使用HDFS存储WAL(Write-Ahead Log)和HFiles。默认情况下,HDFS不会实时同步数据到磁盘,而是写入临时文件后移动到最终位置,导致在断电情况下...

    Hadoop2.7.1+Hbase1.2.1集群环境搭建(7)hbase 性能优化

    1. **硬件优化**:增加内存、使用SSD硬盘、提高网络带宽,这些都可以显著提升HBase的性能。 2. **表设计**:合理设计RowKey,避免热点问题;预分区表以减少Region分裂;使用合适的数据类型和列族策略。 3. **HBase...

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

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

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

    综上所述,HBase的读性能优化策略需要综合考虑客户端、服务器端、列族设计以及HDFS等多个方面的因素。合理地进行优化配置,需要深入理解HBase的工作机制和数据存储模型,同时结合实际应用场景和业务需求,对各个参数...

    HBase写性能优化策略

    总结来说,HBase写性能优化可以从多个方面入手,包括调整WAL写入机制、使用批量操作、合理分配Region、保证请求均衡以及控制KeyValue大小。每个策略都有其适用的业务场景和优势,系统管理员和开发者应根据实际需求和...

    hbase性能优化.pdf

    在HBase性能优化中,有两个关键的配置参数需要关注:`hbase.hregion.max.filesize`和`autoflush`设置。这些参数对HBase的写入性能、数据一致性和系统稳定性有显著影响。 1. `hbase.hregion.max.filesize`的设定: ...

    HBase的性能优化

    "HBase性能优化" HBase是一种高性能的NoSQL数据库,广泛应用于大数据存储和处理领域。然而,HBase的性能优化是非常重要的,特别是在大规模数据集群环境中。以下是HBase性能优化的相关知识点: 启用LZO压缩 HBase...

    Hadoop 集群(第 12 期副刊)-HBase性能优化.pdf

    ### Hadoop集群(第12期副刊)-HBase性能优化 #### 一、从配置角度优化HBase性能 **1.1 修改Linux配置** Linux系统默认的最大可打开文件数通常设定为1024个,这对于大多数应用场景来说可能足够,但在高并发环境下...

    Hbase1.x可视化客户端工具

    1. 安装与配置:根据提供的使用说明,下载并安装适合的客户端工具,配置HBase的相关连接信息,如ZooKeeper地址、HBase集群地址等。 2. 连接集群:启动客户端工具,连接到目标HBase集群。 3. 表管理:创建新的表,...

    HBase性能深度分析

    本文将深入探讨HBase的性能测试细节,重点剖析数据插入性能,并通过实证分析揭示其背后的机制与优化策略。 #### 数据插入性能测试设计 在评估HBase的实时数据插入性能时,测试场景设计至关重要。以随机值的Rowkey...

    hbase客户端连接工具winutils-2.2.0.zip

    1. **安装JDK**:HBase和Hadoop都是用Java编写的,因此在运行任何Hadoop或HBase相关的程序之前,确保已经在系统上安装了兼容版本的Java Development Kit(JDK)。 2. **解压并配置路径**:下载并解压`winutils-...

Global site tag (gtag.js) - Google Analytics