博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
一篇文章搞懂 HBase 的 flush 机制和 compact 机制
阅读量:4073 次
发布时间:2019-05-25

本文共 1398 字,大约阅读时间需要 4 分钟。

前言

本文隶属于专栏《1000个问题搞定大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见

正文

Flush机制

(1)当memstore的大小超过这个值的时候,会flush到磁盘,默认为128M

hbase.hregion.memstore.flush.size
134217728

(2)当memstore中的数据时间超过1小时,会flush到磁盘

hbase.regionserver.optionalcacheflushinterval
3600000

(3)HregionServer的全局memstore的大小,超过该大小会触发flush到磁盘的操作,默认是堆大小的40%

hbase.regionserver.global.memstore.size
0.4

(4)手动flush

flush tableName

Compact 机制

  • hbase为了防止小文件过多,以保证查询效率,hbase需要在必要的时候将这些小的store file合并成相对较大的store file,这个过程就称之为compaction。

  • 在hbase中主要存在两种类型的compaction合并

minor compaction 小合并

  • 在将Store中多个HFile合并为一个HFile

  • 这个过程中,达到TTL(记录保留时间)会被移除,删除和更新的数据仅仅只是做了标记,并没有物理移除,这种合并的触发频率很高。

minor compaction 触发条件由一下几个参数共同决定

hbase.hstore.compaction.min
3
hbase.hstore.compaction.max
10
hbase.hstore.compaction.min.size
134217728
hbase.hstore.compaction.max.size
9223372036854775807

major compaction 大合并

  • 合并Store中所有的HFile为一个HFile

  • 这个过程有删除标记的数据会被真正移除,同时超过单元格maxVersion的版本记录也会被删除。合并频率比较低,默认7天执行一次,并且性能消耗非常大,建议生产关闭(设置为0),在应用空闲时间手动触发。一般可以是手动控制进行合并,防止出现在业务高峰期。

major compaction 触发时间条件

hbase.hregion.majorcompaction
604800000
  • 手动触发
# 使用major_compact命令major_compact tableName

转载地址:http://ykgji.baihongyu.com/

你可能感兴趣的文章
memcached工作原理与优化建议
查看>>
Redis与Memcached的区别
查看>>
redis sharding方案
查看>>
程序员最核心的竞争力是什么?
查看>>
Node.js机制及原理理解初步
查看>>
linux CPU个数查看
查看>>
分布式应用开发相关的面试题收集
查看>>
简单理解Socket及TCP/IP、Http、Socket的区别
查看>>
利用HTTP Cache来优化网站
查看>>
利用负载均衡优化和加速HTTP应用
查看>>
消息队列设计精要
查看>>
分布式缓存负载均衡负载均衡的缓存处理:虚拟节点对一致性hash的改进
查看>>
分布式存储系统设计(1)—— 系统架构
查看>>
MySQL数据库的高可用方案总结
查看>>
常用排序算法总结(一) 比较算法总结
查看>>
SSH原理与运用
查看>>
SIGN UP BEC2
查看>>
S3C2440中对LED驱动电路的理解
查看>>
《天亮了》韩红
查看>>
Windows CE下USB摄像头驱动开发(以OV511为例,附带全部源代码以及讲解) [转]
查看>>