HBase(3):内部机制flush & compact & split

本文详细解析了HBase数据库的数据存储流程,包括flush、compact和split三个关键阶段,并介绍了相关配置参数,帮助读者理解HBase如何高效管理和优化数据存储。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

2018年11月27日 23:36:48 RayBreslin 阅读数:15

1.实现功能

当向hbase数据库中存储数据的时候,实际存储过程是有三个阶段:flush & compact & split。 

2.分步说明

(1)flush
       Client写入 -> 存入MemStore,一直到MemStore满(Hlog)-> Flush成一个StoreFile存储在HDFS上    
     
(2)compact
       StoreFile,直至增长到一定阈值 -> 触发Compact合并操作 -> 多个StoreFile合并成一个StoreFile 
     
(3)split
       单个StoreFile大小超过一定阈值后,触发Split操作,把当前Region Split成2个Region
       HMaster分配到相应的HRegionServer上     

3.hbase-default.xml中相关参数

 
  1. Flush:

  2. <!--当memstore的大小超过这个值的时候,会flush到磁盘。128M-->

  3. <property>

  4. <name>hbase.hregion.memstore.flush.size</name>

  5. <value>134217728</value>

  6. </property>

  7. <!--单个regionserver的全部memstore的最大值。超过这个值总容量(Max Heap=983.4 M)*0.4,

  8. 一个新的put插入操作会被挂起,强制执行flush操作。 -->

  9. <property>

  10. <name>hbase.regionserver.global.memstore.upperLimit</name>

  11. <value>0.4</value>

  12. </property>

  13. <!--当强制执行flush操作的时候,当低于这个值的时候,flush会停止。默认是堆大小的 35% . -->

  14. <property>

  15. <name>hbase.regionserver.global.memstore.lowerLimit</name>

  16. <value>0.35</value>

  17. </property>

  18.  
  19. Compact:

  20. <!--当一个HStore含有多于这个值的HStoreFiles(每一个memstore flush产生一个HStoreFile)的时候,会执行一个合并操作,把这HStoreFiles写成一个-->

  21. <property>

  22. <name>hbase.hstore.compactionThreshold</name>

  23. <value>3</value>

  24. </property>

  25. <!--一个Region中的所有HStoreFile的major compactions的时间间隔。默认是1天。-->

  26. <property>

  27. <name>hbase.hregion.majorcompaction</name>

  28. <value>86400000</value>

  29. </property>

  30.  
  31. Split:

  32. <!--最大HStoreFile大小。若某个列族的HStoreFile增长达到这个值,这个Hegion会被切割成两个。 默认: 10G.-->

  33. <property>

  34. <name>hbase.hregion.max.filesize</name>

  35. <value>10737418240</value>

  36. </property>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值