文档章节

关于MemStore的刷新方式

heeee
 heeee
发布于 2014/12/11 21:58
字数 507
阅读 101
收藏 3
点赞 0
评论 0

关于MemStore的刷新方式:

1、MemStore达到上限hbase.hregion.memstore.flush.size 默认是128M的时候,会触发MemStore的刷新。这个参数表示单个MemStore的大小的阈值。这个时候是不阻塞写操作的。

 

2、当一个RegionMemStore总量达到hbase.hregion.memstore.block.multiplier * hbase.hregion.memstore.flush.size(默认2*128M=256M)时,会阻塞这个region的写操作,并强制刷写到HFile。触发这个刷新只会发生在MemStore即将写满128Mput了一个巨大的记录的情况,这时会阻塞写操作,强制刷新成功才能继续写入。

 

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刷写到HFilehbase.regionserver.global.memstore.lowerLimit 默认0.35,表示所有的MemStore占用超过heap35%时,会选择一些占用内存比较大的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'


本文转载自:http://blog.itpub.net/51862/viewspace-1062329/

共有 人打赏支持
heeee
粉丝 8
博文 21
码字总数 4743
作品 0
深圳
高级程序员
Accordion:HBase “呼吸式”内存压缩算法

  【IT168 评论】现今,HBase 所支持的现代产品对Hbase读写性能的期望越来越高。理想情况下,HBase 也希望在保证其可靠的持久存储的前提下能同时享有内存数据库的速度。社区的贡献者在HBa...

Hbase工作笔记
05/24
0
0
hbase的flush刷新时间

hbase的region server有一个后台线程每秒中刷新检查一次memstore是否满了,如果满了就做刷新 如果当时写入的频率非常高,1秒检查一次这个频率是不是有点慢,理论上可能会OOM? 这种情况是怎么...

超级呆子
2015/02/28
311
0
HBase–调优篇

表的设计 1.1 提前创建多个Region 默认情况下,在创建HBase表的时候会自动创建一个Region分区,当导入数据的时候,所有的HBase客户端都向这一个Region写数据,直到这个Region足够大了才进行切...

Circleblog
2016/07/22
125
0
HBase性能优化方法总结(三):读表操作

本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。有关HBase系统配置级别的优化,可参考:淘宝Ken Wu同学的博客。 下面是本文总结的第三部分内容:读表操作相关的优...

蓝狐乐队
2014/06/04
94
0
深入解读HBase2.0新功能之高可用读Region Replica

为什么需要Region Replica 在CAP理论中,HBase一直是一个CP(Consistency&Partition tolerance)系统。HBase一直以来都在遵循着读写强一致的语义。所以说虽然在存储层,HBase依赖HDFS实现了数...

HBase技术社区
06/07
0
0
深入解读HBase2.0新功能之高可用读Region Replica

前言 基于时间线一致的高可用读(Timeline-consistent High Available Reads),又称Region replica。其实早在HBase-1.2版本的时候,这个功能就已经开发完毕了,但是还是不太稳定,离生产可用...

正研
06/04
0
0
Hbase列族数量限制思考

Hbase官方文档中写明,目前列族数量最优不超过3个。先看Hbase的存储结构 每个 RegionServer 包含多个 Region,每个 Region 包含多个Store,每个 Store 包含一个 MemStore 和多个 StoreFile。...

诺晨
2016/11/30
414
0
HBase日常运维及优化指南

一,基本命令: 建表:create 'testtable','coulmn1','coulmn2' 也可以建表时加coulmn的属性如:create 'testtable',{NAME => 'coulmn1', BLOOMFILTER => 'NONE', REPLICATIONSCOPE => '0', ......

zyqJustin
2016/04/18
195
0
Accordion :一种HBase内存压缩算法介绍

  【IT168 技术】现如今,人们对基于HBase的产品的读写速度要求越来越高。在理想情况下,人们希望HBase 可以在保证其可靠的持久存储的前提下能并拥有内存数据读写的速度。为此,在HBase2....

网络大数据
05/22
0
0
Accordion:HBase一种内存压缩算法

现如今,人们对基于HBase的产品的读写速度要求越来越高。在理想情况下,人们希望HBase 可以在保证其可靠的持久存储的前提下能并拥有内存数据读写的速度。为此,在HBase2.0中引入According算法...

HBase技术社区
05/01
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

tomcat 学习笔记之 Session管理

1、Catalina 通过一个 Session 管理器的组件来管理建立的Session 对象 该组件由 org.apache.catalina.Manager 接口表示 Session 管理器必须与一个 Context 关联 Session 管理器负责,创建、更...

职业搬砖20年
7分钟前
0
0
jquery获取input框的几种方式

//如何用jquery获取<input id="test" name="test" type="text"/>中输入的值?$(" #test ").val()$(" input[ name='test' ] ").val()$(" input[ type='text' ] ").val()$(" input[ ......

gulf
10分钟前
0
0
gradle的环境变量的配置

gradle的环境变量的配置 1.首先下载jdk,并且配置jdk的环境变量. 2.找到自己AS安装gradle的目录 我自己的目录为:F:\Android Studio3.1.3\gradle\gradle-4.4 创建环境变量:GRADLE_PATH: F:\A...

android-key
17分钟前
0
0
saltstack配置apache

1.相关配置 #vim /etc/salt/master //打开如下内容的注释 file_roots: base: - /srv/salt #mkdir /srv/salt #vim /srv/salt/top.sls base: 'slaver.test.com': - apache 注意:若换成 '*',则......

硅谷课堂
17分钟前
0
0
Nested enum types are implicitly static

.Nested enum types are implicitly static So there's no need to declare them static explicitly....

Yixin_Nemo
18分钟前
0
0
xlsxwriter 常用excel格式

官方文档:xlsxwriter 官方文档 微博只对常用的方法做了总结和coding,详细方法请参考官方文档 常规写入数据: 写入字符串write_string() import xlsxwriterworkbook = xlsxwriter.Workb...

白木日勿
18分钟前
0
0
TeX

Ito LaTeX是一类用于编辑和排版的软件,用于生成PDF文档。 LaTeX编辑和排版的核心思想在于,通过\section和\paragraph等语句,规定了每一句话在文章中所从属的层次,从而极大方便了对各个层次...

E-C-Ares
21分钟前
0
0
nodejs调用webservice接口

刚接触花了一天时间去查找资料,网上资料也是够了,很多都试了不行,最后看了还是那么简单 主要是了node-soap node-soap-ntlm soap-ntlm-2,这几个试了都有缺陷, 1 首先安装soap npm instal...

lovelan1314
21分钟前
0
0
SUSE Linux 将被 EQT 收购

SUSE再次易主 Micro Focus 宣布将其一大部分业务出售给瑞典私人股本集团殷拓(EQT),所得的一部分收益将用来减轻债务,其余部分将返给股东。EQT 是一家专注于开发领域的投资公司,在软件行业拥...

linux-tao
29分钟前
0
0
Elastic-Job定时任务

用Elastic-Job可解决分布式重复执行问题 如果业务工程采用集群化的部署,可能会多次重复执行定时任务而导致系统的业务逻辑错误,并产生系统故障。 job.properties simple.id=recommendJobs...

lsjlgo
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部