美文网首页
HBase Flush 机制

HBase Flush 机制

作者: moon_light_ | 来源:发表于2020-04-14 01:43 被阅读0次

    定义在 hbase-site.xml 文件

    ## Count of RPC Listener instances spun up on RegionServers
    ## 一个 region server 可以同时处理的请求个数 (包括增删查改), 超过这个值的请求会在 Queue 里排队
    hbase.regionserver.handler.count : 30
    
    
    ## 以下几个参数是关于 MemStore 刷入 HFile 的机制
    ##   1. MemStore 超过 128M 时刷入 (默认每 10 秒检查一次)
    ##   2. MemStore 超过 4 * 128M 时 block 更新 MemStore 的操作,并强制做 flush,这是为了处理出现 spike 的场景
    ##   3. 当 RegionServer 所有 MemStore 的总大小超过 RegionServer 的 heap 的 40% 时,会 block 所有更新 MemStore 的操作,并强制做 flush,从占内存大的 MemStore 开始
    ##   4. 当 RegionServer 所有 MemStore 的总大小超过 RegionServer 的 heap 的 40% * 0.95 时,选择占用内存大的 MemStore 阻塞更新操作,并进行 flush
    ##   5. 当 WAL(Write-ahead log,预写日志) 数量,也就是 HLog 文件数据大于 32 时,会进行 flush,从最旧的 HLog 文件对应的 Region 开始
    ##   6. Region 的数据更新超过一定阈值 (30 millions)
    ##   7. 定期 (1 小时) 进行 flush
    ##   8. 也可以手动刷入,HBase shell -> flush "TableName"
    
    ## if a MemStore exceed 128M, flush to HDFS HFile
    ## can flush in hbase shell manaully : flush 'TABLENAME'
    hbase.hregion.memstore.flush.size : 134217728 (128M)
    
    ## block update(write,insert,delete) action if a MemStore exceed flush.size*multiplier, for spike traffic scenario
    ## throw RegionTooBusyException
    hbase.hregion.memstore.block.multiplier : 4
    
    ## Maximum size of all memstores in a region server before new updates are blocked and flushes are forced
    hbase.regionserver.global.memstore.size : 0.4
    
    ## Maximum size of all memstores in a region server before flushes are forced
    hbase.regionserver.global.memstore.size.lower.limit : 95% of hbase.regionserver.global.memstore.size
    
    ## If more than this many logs, force flush of oldest region to oldest edit goes to disk. 
    hbase.regionserver.maxlogs : 32
    
    ## force a flush if there are already enough changes for one region in memstore
    hbase.regionserver.flush.per.changes : 30000000
    
    ## Maximum amount of time an edit lives in memory before being automatically flushed
    hbase.regionserver.optionalcacheflushinterval : 3600000 (1 hour)
    
    
    ## Maximum HStoreFile size in HDFS
    ## hadoop fs -du -s -h /apps/hbase/data/data/default/REGULARDATAPHOENIXTABLE/*
    hbase.hregion.max.filesize : 10737418240 (10G)
              
    ## The time (in miliseconds) between 'major' compactions of all HStoreFiles in a region
    ## 多久做一次 major compact
    hbase.hregion.majorcompaction : 604800000 (7 days)
    
    ## Max number of HStoreFiles to compact per 'minor' compaction
    ## 一次 minor compact 最多操作多少个 HFile
    hbase.hstore.compaction.max : 10
    



    相关文章

      网友评论

          本文标题:HBase Flush 机制

          本文链接:https://www.haomeiwen.com/subject/mrsamhtx.html