文档章节

关于MemStore的刷新方式

heeee
 heeee
发布于 2014/12/11 21:58
字数 507
阅读 118
收藏 3

关于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
粉丝 9
博文 22
码字总数 4743
作品 0
深圳
高级程序员
私信 提问
Accordion:HBase “呼吸式”内存压缩算法

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

Hbase工作笔记
2018/05/24
0
0
关于HBase2.0的新特性,看这一篇文章就够了!

作者 | 个推大数据运维工程师 行者 升级背景 个推作为专业的数据智能服务商,在业务开展过程中存在海量的数据存储与查询的需求,为此个推选用了高可靠、高性能、面向列、可伸缩的分布式数据存...

个推开发者
2019/09/28
0
0
hbase的flush刷新时间

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

超级呆子
2015/02/28
324
0
HBase性能优化方法总结(三):读表操作

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

蓝狐乐队
2014/06/04
188
0
HBase–调优篇

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

Circleblog
2016/07/22
267
0

没有更多内容

加载失败,请刷新页面

加载更多

Bettertouchtool for Mac(触摸板增强工具) v3.225

Bettertouchtool Mac是一个MacOS上的触摸板增强工具,当然,你也可以称它为鼠标增强软件!Bettertouchtool实现不用点击而是触摸的方式操作。支持多种手势,1个,2个,3个手指的操作,支持缩放...

云不若
33分钟前
5
0
如何在MySQL中执行正则表达式替换?

我有一张约有50万行的表格; varchar(255)UTF8列filename包含一个文件名; 我正在尝试从文件名中去除各种奇怪的字符-以为我会使用字符类: [^a-zA-Z0-9()_ .\\-] 现在, MySQL中是否有一个...

技术盛宴
39分钟前
9
0
如何将存储卡转换为DVD

将存储卡转换为DVD是一项非常简单的任务,因为您只需要使用一些软件:读卡器,DVD和DVD刻录机以及软件即可。做好准备后,您现在就可以将文件传输到所需的目的地。但是,如果要使您的文件看起...

麦克虾仔
46分钟前
5
0
Elasticsearch 开箱指南

内容概要 ES 基础介绍,重点是其中的核心概念。 基础 API 实践操作。 1. 基础介绍 Elasticsearch (ES) 是一个数据库,提供了分布式的、准实时搜索和分析。 基于 Apache Lucene,可以操作结构...

性能与架构
48分钟前
7
0
聚合支付平台的安全防护 防止被攻击篡改的2020年方案篇

临近春节,某聚合支付平台被攻击篡改,导致客户提现银行卡信息被修改,支付订单被恶意回调,回调API接口的数据也被篡改,用户管理后台被任意登入,商户以及码商的订单被自动确认导致金额损失...

网站安全
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部