关于MemStore的刷新方式
来源:互联网 发布:node.js jade教程 编辑:程序博客网 时间:2024/06/13 13:32
关于MemStore的刷新方式:
1、MemStore达到上限hbase.hregion.memstore.flush.size 默认是128M的时候,会触发MemStore的刷新。这个参数表示单个MemStore的大小的阈值。这个时候是不阻塞写操作的。
2、当一个RegionServer上的的MemStore总量达到hbase.hregion.memstore.block.multiplier * hbase.hregion.memstore.flush.size(默认2*128M=256M)时,会阻塞这个region的写操作,并强制刷写到HFile。触发这个刷新只会发生在MemStore即将写满128M时put了一个巨大的记录的情况,这时会阻塞写操作,强制刷新成功才能继续写入。
3、一个RegionServer会有很多个Region,很多的MemStore,所以可能单个Region并没有超过阈值,但是整个RegionServer的内存已经占用非常多了,这时候还有另外两个参数控制内存的刷写:hbase.regionserver.global.memstore.upperLimit 默认0.4,当RegionServer上全部的MemStore占用超过heap(heap的大小在hbase-env.sh中设置HBASE_HEAPSIZE,默认1G,我们设置的4G)的40%时,强制阻塞所有的写操作,将所有的MemStore刷写到HFile;hbase.regionserver.global.memstore.lowerLimit 默认0.35,表示所有的MemStore占用超过heap的35%时,会选择一些占用内存比较大的MemStore阻塞写操作并进行flush,这是为了降低阻塞全部写操作flush带来的问题。
4、当HLog达到最大值(hbase.regionserver.maxlogs * hbase.regionserver.hlog.blocksize 默认32*64M = 2G)时,也会触发MemStore的刷新,强制将更新固化到HFile中,避免在RegionServer crash时恢复时间过长。
5、定期会进行MemStore的刷新,hbase.regionserver.optionalcacheflushinterval 默认3600000,一小时,确保MemStore的数据不会长时间没有固化到HFile中。为避免所有的MemStore在同一时间都进行flush导致的问题,定期的flush操作有20000左右的随机延时。
6、手工可以进行flush操作,在hbase shell调用flush,可以针对某个表或者某个region进行flush:
hbase(main):010:0> help 'flush'
Flush all regions in passed table or pass a region row to
flush an individual region. For example:
hbase> flush 'TABLENAME'
hbase> flush 'REGIONNAME'
7、手工flush:
在API中只看到有setMemStoreFlushSize 指定memstore flush到HDFS上的文件大小,默认是64M,不确定是否可以直接触发flush MemStore。
- 关于MemStore的刷新方式
- 关于MemStore的刷新方式
- 关于Memstore的大小设置一点经验
- memstore的flush流程分析
- 关于页面定时刷新的两种方式,记录总结
- 页面的刷新方式
- HBase中MemStore flush的源码解析
- 关于datagridView的刷新
- android view 的刷新方式
- fast刷新方式的限制
- js刷新页面的方式
- HBase的Hmaster、HRegionserver、Region、Hstore、memstore、HFile的关系
- 关于页面刷新的问题
- 关于去除刷新的提示
- 关于页面刷新的问题
- 关于页面刷新的问题
- 关于父子页面的刷新
- 关于下拉刷新的总结
- 存minicom log
- Python进阶With语法
- 犀牛——第3章类型、值和变量3.9变量声明
- easyui datagrid中动态改变某行的颜色
- shell oracle(sqlplus spool)
- 关于MemStore的刷新方式
- JAVA POI EXCEl单元格内部分字符设置样式 HSSFRichTextString用法
- 使用xcodebuild命令行编译iOS应用遇到的一个错误及解决办法
- chrome插件-贴吧
- ndk r9d for max下载地址
- 2015年1月17日雅思阅读真题预测
- Python中函数的参数定义和可变参数
- jsoup中文API
- java项目开发中MyEclipse新建工作空间后的配置详细步骤