pinpoint 单机HBASE数据量过大问题解决
Pinpoint接入业务监控后数据量大涨,平均每周Hbase数据增量35G左右,数据量太大,需要对数据进行定期清理,否则监控可用性降低。
操作步骤
查找出数据大的hbase表
[root@iZ28ovlz7ccZ worker]# du -sh hbase/data/default/* 2.2M hbase/data/default/AgentEvent 348K hbase/data/default/AgentInfo 2.6M hbase/data/default/AgentLifeCycle 329M hbase/data/default/AgentStatV2 34M hbase/data/default/ApiMetaData 44K hbase/data/default/ApplicationIndex 66M hbase/data/default/ApplicationMapStatisticsCallee_Ver2 60M hbase/data/default/ApplicationMapStatisticsCaller_Ver2 16M hbase/data/default/ApplicationMapStatisticsSelf_Ver2 1.1M hbase/data/default/ApplicationStatAggre 1.1G hbase/data/default/ApplicationTraceIndex 976K hbase/data/default/HostApplicationMap_Ver2 15M hbase/data/default/SqlMetaData_Ver2 848K hbase/data/default/StringMetaData 21G hbase/data/default/TraceV2
24小时产生数据大概8G,发现其中TraceV2及ApplicationTraceIndex数据比较大,设置TTL分别为7Day及14Day
进入hbase修改表ttl
[root@iZ28ovlz7ccZ ~]# /usr/local/hbase-1.0./bin/hbase shell -- ::, WARN [main] util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable hbase(main)::> list TABLE AgentEvent AgentInfo AgentLifeCycle AgentStatV2 ApiMetaData ApplicationIndex ApplicationMapStatisticsCallee_Ver2 ApplicationMapStatisticsCaller_Ver2 ApplicationMapStatisticsSelf_Ver2 ApplicationStatAggre ApplicationTraceIndex HostApplicationMap_Ver2 SqlMetaData_Ver2 StringMetaData TraceV2 row(s) in 0.0100 seconds => ["AgentEvent", "AgentInfo", "AgentLifeCycle", "AgentStatV2", "ApiMetaData", "ApplicationIndex", "ApplicationMapStatisticsCallee_Ver2", "ApplicationMapStatisticsCaller_Ver2", "ApplicationMapStatisticsSelf_Ver2", "ApplicationStatAggre", "ApplicationTraceIndex", "HostApplicationMap_Ver2", "SqlMetaData_Ver2", "StringMetaData", "TraceV2"] hbase(main)::> describe 'TraceV2' Table TraceV2 is ENABLED TraceV2 COLUMN FAMILIES DESCRIPTION {NAME => 'S', BLOOMFILTER => 'ROW', VERSIONS => '', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'PREFIX', TTL => '5184000 SECONDS ( DAYS)', COMPRESSION => 'NONE', MIN_VERSIONS => '', BLOCKCACHE => 'true', BLOCKSIZE => '', REPLICATION_SCOPE => ''} row(s) in 0.1190 seconds hbase(main)::> disable 'TraceV2' row(s) in 4.2190 seconds hbase(main)::> alter 'TraceV2' , {NAME=>'S',TTL=>''} Updating all regions with the new schema... / regions updated. Done. row(s) in 1.0980 seconds hbase(main)::> enable 'TraceV2' row(s) in 4.2370 seconds hbase(main)::> describe 'TraceV2' Table TraceV2 is ENABLED TraceV2 COLUMN FAMILIES DESCRIPTION {NAME => 'S', BLOOMFILTER => 'ROW', VERSIONS => '', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'PREFIX', TTL => '604800 SECONDS (7 DAYS)', COMPRESSION => 'NONE', MIN_VERSIONS => '', BLOCKCACHE => 'true', BLOCKSIZE => '', REPLICATION_SCOPE => ''} row(s) in 0.0160 seconds
hbase(main)::> major_compact 'TraceV2'
row(s) in 0.4900 seconds
设置ApplicationTraceIndex的TTL为 14天
hbase(main)::> describe 'ApplicationTraceIndex' Table ApplicationTraceIndex is ENABLED ApplicationTraceIndex COLUMN FAMILIES DESCRIPTION {NAME => 'I', BLOOMFILTER => 'ROW', VERSIONS => '', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'PREFIX', TTL => '5184000 SECONDS ( DAYS)', COMPRESSION => 'NONE', MIN_VERSIONS => '', BLOCKCACHE => 'true', BLOCKSIZE => '', REPLICATION_SCOPE => ''} row(s) in 0.0150 seconds hbase(main)::> disable 'ApplicationTraceIndex' row(s) in 1.1660 seconds hbase(main)::> alter 'ApplicationTraceIndex' , {NAME=>'I',TTL=>''} Updating all regions with the new schema... / regions updated. Done. row(s) in 1.0550 seconds hbase(main)::> enable 'ApplicationTraceIndex' row(s) in 0.3520 seconds hbase(main)::> describe 'ApplicationTraceIndex' Table ApplicationTraceIndex is ENABLED ApplicationTraceIndex COLUMN FAMILIES DESCRIPTION {NAME => 'I', BLOOMFILTER => 'ROW', VERSIONS => '', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', DATA_BLOCK_ENCODING => 'PREFIX', TTL => '1209600 SECONDS ( DAYS)', COMPRESSION => 'NONE', MIN_VERSIONS => '', BLOCKCACHE => 'true', BLOCKSIZE => '', REPLICATION_SCOPE => ''} row(s) in 0.0200 seconds hbase(main)::> major_compact 'ApplicationTraceIndex' row(s) in 0.1660 seconds
备注:
major_compact目的
1.合并文件
2.清除删除、过期、多余版本的数据
3.提高读写数据的效率
604800 7day
describe 'TraceV2'
disable 'TraceV2'
alter 'TraceV2' , {NAME=>'S',TTL=>'604800'}
enable 'TraceV2'
describe 'TraceV2'
major_compact 'TraceV2'
1209600 14day
describe 'ApplicationTraceIndex'
disable 'ApplicationTraceIndex'
alter 'ApplicationTraceIndex' , {NAME=>'I',TTL=>'1209600'}
enable 'ApplicationTraceIndex'
describe 'ApplicationTraceIndex'
major_compact 'ApplicationTraceIndex'
最后查看清理完后的数据大小
[root@iZ28ovlz7ccZ ~]# du -sh /worker/hbase/data/* 14G /worker/hbase/data/default 348K /worker/hbase/data/hbase
pinpoint 单机HBASE数据量过大问题解决的更多相关文章
- 解决WCF传输的数据量过大问题
今天写了个WCF接口,然后自测通过,和别人联调时报 远程服务器返回错误: (413) Request Entity Too Large 错误!记得以前写的时候也出现过这个错误,大致解决办 ...
- Mysql大数据量问题与解决
今日格言:了解了为什么,问题就解决了一半. Mysql 单表适合的最大数据量是多少? 我们说 Mysql 单表适合存储的最大数据量,自然不是说能够存储的最大数据量,如果是说能够存储的最大量,那么,如果 ...
- POI读写大数据量excel,解决超过几万行而导致内存溢出的问题
1. Excel2003与Excel2007 两个版本的最大行数和列数不同,2003版最大行数是65536行,最大列数是256列,2007版及以后的版本最大行数是1048576行,最大列数是16384 ...
- mysql数据库优化方法大数据量查询轻松解决
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索 ...
- JDBC中大数据量的分页解决方法?
最好的办法是利用sql语句进行分页,这样每次查询出的结果集中就只包含某页的数据内容. sql语句分页,不同的数据库下的分页方案各不一样,下面是主流的三种数据库的分页sql: oracle: selec ...
- 使用POI导出EXCEL工具类并解决导出数据量大的问题
POI导出工具类 工作中常常会遇到一些图表需要导出的功能,在这里自己写了一个工具类方便以后使用(使用POI实现). 项目依赖 <dependency> <groupId>org ...
- sql server编写通用脚本自动统计各表数据量心得
工作过程中,如果一个数据库的表比较多,手工编写统计脚本就会比较繁琐,于是摸索出自动生成各表统计数据量脚本的通用方法,直接上代码: /* 脚本来源:https://www.cnblogs.com/zha ...
- HBase 高性能获取数据(多线程批量式解决办法) + MySQL和HBase性能测试比较
摘要: 在前篇博客里已经讲述了通过一个自定义 HBase Filter来获取数据的办法,在末尾指出此办法的性能是不能满足应用要求的,很显然对于如此成熟的HBase来说,高性能获取数据应该不是问题. ...
- HBase协处理器统计表数据量
1.Java代码实现 import org.apache.hadoop.hbase.client.coprocessor.AggregationClient; import org.apache.ha ...
随机推荐
- IDEA中利用MAVEN制作和打包普通可执行应用(非SprintBoot的WEB应用)
我使用IDEA也就半年,开发中常常会遇到一些问题,例如用IDEA编写普通的可执行程序: 之前使用Eclipse编写一个可执行的JAVA程序,然后导出打包,非常方便: 但是我呢,想在 IDEA 中用Ma ...
- android studio3.1 添加闪屏页面(启动欢迎界面)(例子简单无BUG)
截图 启动页的 activity_splash.xml 我用了一张图片自己添加吧 <?xml version="1.0" encoding="utf-8" ...
- 《ES6标准入门》(阮一峰)--3.变量的解构赋值
1.数组的解构赋值 基本用法 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构(Destructuring). 以前,为变量赋值,只能直接指定值. let a = 1; l ...
- centos6.5搭建hadoop单节点
1.添加用户 groupadd hadoop useradd -d /home/hadoop -m hadoop -g hadoop passwd hadoop 修改密码 付给用户sudo权限 ...
- golang用slice、list当queue
背景 golang没有queue这种类型,不过可以用slice.list模拟 slice当queue 声明队列 var queue []int 入队一个元素: queue = append(queue ...
- 吴裕雄--天生自然C++语言学习笔记:C++ 指针
每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址. #include <iostream> using namesp ...
- mysql 深度分页
mysql 分页查询使我们常见的需求 ,但是随着页数的增加查询性能会逐渐下降,尤其是到深度分页的情况.我们可以把分页分为两个步骤,1.定位偏移量,2.获取分页条数的 数据. 所以当数据较大页数较深时 ...
- 公告上下滚动基于Jquery
前提 需要引入jquery 如果你用的单位不是px 修改的同时红色部分需保持一致 <!DOCTYPE html> <html> <head> <meta ...
- IO_课堂测试
IO_课堂测试 一,用户需求 英语的26 个字母的频率在一本小说中是如何分布的?某类型文章中常出现的单词是什么?某作家最常用的词汇是什么?<飘> 中最常用的短语是什么,等等. (1)要求1 ...
- 51nod 1191:消灭兔子 贪心+优先队列
1191 消灭兔子 题目来源: 2013腾讯马拉松赛第三场 基准时间限制:1 秒 空间限制:131072 KB 分值: 40 难度:4级算法题 收藏 关注 有N只兔子,每只有一个血量B[i],需要 ...