---compact split笔记
compact策略:
在启动region之后,memflush之后,用户compact调用compact
使用策略类needsCompaction方法,hfile数量大于hbase.hstore.compaction.min 和 hbase.hstore.compactionThreshold的最大值数(默认值为3)
major compact触发:(hfile由mem flush生成)
HStore检查是否进行compact时候,现在now - 上次major时间大于hbase.hregion.majorcompaction下次时间间隔 =》 hfile个数大于1 || 只有一个hfile(最早的ts>ttl)整个文件过期 => 进行marjor compact
hbase shell和admin进行major_compact
compact file <= sum(hfile) * hbase.hstore.compaction.ratio 将small compact转为major compact
最小的tts到时间了,进行major compact
compact策略:(一次compact不会compact提供所有的hfile,会选择最好的一组)
ExploringCompactionPolicy
一、选择符合要求的一组hfile进行compact
1.hfile数>=minFiles
2.hfile数<=maxFiles
3.sum(hfile)大小<=hbase.hstore.compaction.max
4.一个hfile大小<sum(hfile)-hfile(不让一个hfile过大)
二、选择最优解(最优的一组hfile)
选择sum(hfile)大小最小的作为第一个组合,选择能合并更多的hfile,并且sum(hfile)大小更小的
split触发:
1.flush之前会检测区域中HStoreFile数目是否超过hbase.hstore.blockingStoreFiles,如果超过且没有等待超时会调用CompactSplitThread.requestSplit(HRegion)
2.flush之后会调用HRegion.checkSplit()检测是否需要split,如果需要则调用CompactSplitThread.requestSplit(HRegion)
3.compact之后会调用CompactSplitThread.requestSplit(HRegion)
4.hbaseadmin split table or region
split策略:
IncreasingToUpperBoundRegionSplitPolicy
(init)initialSize = hbase.increasing.policy.initial.size(预先设置初始值大小) 或hbase.hregion.memstore.flush.size (memflush大小)
获取this.region所在表的所有region数 getCountOfCommonTableRegions 为regioncount
当regioncount在0到100之间,取配置hbase.hregion.max.filesize(默认10G)或initialSize*(regioncount^3)的最小值 否则取配置hbase.hregion.max.filesize(默认10G)
如,只有一个region,128*1^3=128M
之后: 128*2^3=1024M
128*3^3=3456M
128*4^3=8192M
128*5^3=16000M(15G) => 10G 当有5个region就可以用配了
结论:
compact
无法避免,
增大hbase.hstore.compaction.min 和 hbase.hstore.compactionThreshold可以减少compact频率,但是延迟compact时间,反之亦然
通过减少生成hfile数量减少compact,
通过设置较大的hbase.hregion.majorcompaction可以减少marjor compact频率
可以定时人为进行mar compact
split
可以避免,split可以只设置hbase.hregion.max.filesize很大就停止了region split操作
相关推荐
HBase写性能优化策略HBase写性能优化策略HBase写性能优化策略
为解决现有的HBase数据压缩策略选择方法未考虑数据的冷热性,以及在选择过程中存在片面性和不可靠性的缺陷,提出了基于HBase数据分类的压缩策略选择方法。依据数据文件的访问频度将HBase数据划分为冷热数据,并限定具体...
本资源为hbase的安装和使用,内含hbase安装工具包,hbase的安装说明,hbase的使用说明 。
hbase备份和数据恢复,hbase与hive的互导,hbase和hdfs互导。
java 利用 sping-data-hadoop HbaseTemplate 操作hbase find get execute 等方法 可以直接运行
HBase的region split策略一共有以下几种: 1、ConstantSizeRegionSplitPolicy 0.94版本前默认切分策略 当region大小大于某个阈值(hbase.hregion.max.filesize=10G)之后就会触发切分,一个region等分为2个region。 ...
hbase原理和设计,包括二级索引,rowkey设计,常见的坑.
hbase-sdk是基于hbase-client和hbase-thrift的原生API封装的一款轻量级的HBase ORM框架。 针对HBase各版本API(1.x~2.x)间的差异,在其上剥离出了一层统一的抽象。并提供了以类SQL的方式来读写HBase表中的数据。对...
搭建pinpoint需要的hbase初始化脚本hbase-create.hbase
hadoop jar /usr/lib/hbase/hbase-0.90.4-cdh3u3.jar importtsv -Dimporttsv.columns=HBASE_ROW_KEY, catgyname,catgyid1,catgyname1,catgyid2,catgyname2,catgyid3,catgyname3,catgyid4,catgyname4,catgyid5,...
HBase最佳实践-读性能优化策略,HBase最佳实践-读性能优化策略
HBase的模式Schema设计的一些概念和原则 5 1)模式的创建与更新 5 2)列族的数量 6 3)行键设计RowKey 6 5. HBase的拓扑结构是什么? 7 1)拓扑结构 7 2)HBase与ZooKeeper的关系是什么? 7 3)HBase的内部结构管理...
文档是我自己一步步完成实验写成的,给初学大数据的朋友共享一下希望能有所帮助
HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...
HBase作为Hadoop分布式开源云数据库因其高可用性等优势越来越受到青睐,但是随着大量数据的注入,HBase对负载的分配状况将直接影响到整个集群的性能优劣.针对原有负载均衡算法在负载分配过程中可能产生的负载严重不...
本文档图文并茂地详细的描述了HBASE列式数据的架构和原理,是HBASE入门不错的的资料
HBase的操作和编程.pdf HBase Cpressr优化与实验 郭磊涛.pdf null【HBase】Data Migratin frm Gri t Clu Cmputing - Natural Sienes .pdf 分布式数据库HBase快照的设计与实现.pdf 【HBase】Distribute Strage f ...
hbase和zookeeper的详细配置
major_compact('t_abc') disable 't_abc' drop 't_abc' create 't_abc', 'info' EOF 以上这篇hbase-shell批量命令执行脚本的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持软件开发...