HBase一次慢查询请求的问题排查与解决过程

标签: hbase 问题 | 发表时间:2013-06-08 14:22 | 作者:大圆那些事
出处:http://www.cnblogs.com/

作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息

网址: http://www.cnblogs.com/panfeng412/archive/2013/06/08/hbase-slow-query-troubleshooting.html

最近HBase集群遇到过一次慢查询请求的问题,下面是对这一问题的具体描述及排查解决过程。

1. 发现问题

项目中有一张HBase表,每天凌晨以后会集中批量导入一批数据,导入数据量很大,在千万到亿的量级,然后白天为用户提供查询服务。某天突然发现,该表按照各个region(共计256个)分别仅scan少数几条数据时,部分region的查询请求的响应时间很慢,长达10秒甚至几十秒不等。

2. 排查问题

首先,通过查看HBase自带的region server监控界面上,看到这张表的每个region下面只有1~3个StoreFile,排除了由于StoreFile过多导致查询响应慢的情况。

接着排查,发现这张表的TTL为5天,因此会有大量过期数据存在。同时,由于这张表每天早上会导入一批数据(其中上周3.22那天集中导入了7亿多条记录),而集群的major compact周期配置是7天,虽然到今天为止3.22号的数据已经过期了,但是还没有经过major compact触发清除过期的数据,因此,存在大量过期但尚未被清除的数据,导致即使按照各个region分别仅scan少数几条数据,仍需要过滤掉一大批过期的数据(从监控看到当时的Block Cache访问量比平时高了一倍左右,如下图所示),才能扫到实际有用的数据,所以查询响应时间很慢。

3. 解决问题

针对这一问题,有以下两种解决方法:

1)每天早上导入数据后,强制触发一次major compact操作(见HBaseAdmin的majorCompct方法,异步执行),使得表中每个region中的过期数据可以被及时清除掉。

2)由于集群的major compact周期为7天,而表的TTL为5天,因此可以将major compact周期调小(配置参数为hbase.hregion.majorcompaction,单位为毫秒;同时,hbase.offpeak.start.hour可以设置major compact启动的小时,例如,设置为1,可保证在1点后触发),从集群级别保证major compact尽早触发执行。

本文链接

相关 [hbase 问题] 推荐:

hbase问题总结

- - 企业架构 - ITeye博客
做简单的incr操作时出现,原因是之前put时放入的是int  长度为 vlen=4 ,不适用增加操作,只能改为long型 vlen=8. 目前把10.xx.xx.37这台机器下线,运行一夜稳定,没有出现因split造 成的阻塞. Hmaster的日志显示这台region server 不停的open close,不做任何split 或flush.

记录碰到的HBase问题

- Adam - BlueDavy之技术blog
目前NoSQL产品最被人诟病的就是其稳定性,不得不承认,目前HBase离做到数据库那样的高稳定还有距离(丢数据、不能读写、DDL失败等严重问题),这篇blog将用来记录我们在运维HBase时碰到的问题(会不断更新),希望能给使用HBase的同学有一些帮助. 1、单台regionserver的region数很多后写速度疯狂下降.

初学HBase的几个问题

- - CSDN博客云计算推荐文章
本文主要针对对HBase不了解的人. 主要想基于个人的理解回答以下几个问题:. HBase常用的操作有哪些. HBase的一些配置和监控. HBase,是Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统. 使用HBase技术可以在廉价的PC服务器上搭建起大规模结构化的存储集群.

HBase工程师线上工作经验总结----HBase常见问题及分析

- - 互联网 - ITeye博客
阅读本文可以带着下面问题:. 1.HBase遇到问题,可以从几方面解决问题. 2.HBase个别请求为什么很慢. 3.客户端读写请求为什么大量出错. 4.大量服务端exception,一般原因是什么. 6.Hbase数据写进去,为什么会没有了,可能的原因是什么. regionserver发生abort,遇到最多是什么情况.

hbase0.96数据导入以及Kettle操作hbase问题

- - CSDN博客云计算推荐文章
HBase数据导入使用org.apache.hadoop.hbase.mapreduce.ImportTsv 的两种方式,一种是直接导入,一种是转换为HFile,然后再次导入. 建立hbase-employees-1表,使用hbase shell,进入shell模式,使用命令:create 'hbase-employees-1','col' ,建立表;.

storm、hbase、kafka整合过程中遇到的log4j冲突问题

- - 行业应用 - ITeye博客
storm、hbase、kafka整合过程中遇到的log4j冲突问题. log4j-over-slf4j.jar AND slf4j-log4j12.jar 循环调用冲突了,再进一步原因是kafka、hbase中用的是log4j. * 方案一:把storm中的log4j-over-slf4j 依赖排除;.

HBase in Practice:性能、监控及问题解决

- - IT瘾-dev
DataFun社区 大数据、算法的交流学习平台 圈内人都在关注. 本文根据阿里巴巴高级技术专家李钰(Yu Li)老师在中国HBase技术社区第二届MeetUp:“HBase技术解析及应用实践”中分享的《HBase in Practice-性能、监控及问题解决》编辑整理而成,在未改变原意的基础上稍做整理.

HBase调优 | 写入阻塞问题与参数优化

- -
一图胜千言,先来看下HBase数据写入流程:. 如上图所示,当数据写到服务端时,在持久化到磁盘之前,要经过三个重要过程:. 追加写WAL日志:数据会首先追加写入到WAL文件,用于故障恢复. 写入MemStore:然后写入所属Region的MemStore缓存中,此时客户端写入就算成功了. MemStore Flush:当MemStore达到一定阈值,或者满足一定条件就会Flush到磁盘,生成一个HFile文件.

HBase一次慢查询请求的问题排查与解决过程

- - 博客园_首页
作者: 大圆那些事 | 文章可以转载,请以超链接形式标明文章原始出处和作者信息. 网址: http://www.cnblogs.com/panfeng412/archive/2013/06/08/hbase-slow-query-troubleshooting.html. 最近HBase集群遇到过一次慢查询请求的问题,下面是对这一问题的具体描述及排查解决过程.

hbase介绍

- AreYouOK? - 淘宝数据平台与产品部官方博客 tbdata.org
hbase是bigtable的开源山寨版本. 是建立的hdfs之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的数据库系统. 它介于nosql和RDBMS之间,仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务(可通过hive支持来实现多表join等复杂操作). 主要用来存储非结构化和半结构化的松散数据.