关于Memstore的大小设置一点经验
来源:互联网 发布:闪电分期go套现淘宝 编辑:程序博客网 时间:2024/05/17 03:23
Hbase的Memstore固化为Hfile的主要触发条件为三个:
1、Hlog的存储文件数目达到上限32(默认配置),一个Hlog的大小默认配置为HDFS的block的95%,这样的话,假定HDFS的块大小为64M,32个文件的话,可以存储的数据量为2G左右。 如果当Hlog的数据达到这个值后,会根据seqid把一些老的region 固化到Hfile中。
2、Memstore的大小设置为64M(默认配置),如果大于这个值则触发Flush的操作,大于64*3时,这个region将阻止put的写入操作。
3、RS上的内存达到内存配置下限0.35(hbase.regionserver.global.memstore.lowerLimit),上限为0.4,这里为了防止OOM,进行put操作的流控。 这里有有一个算法,选择compaction压力小,且Memstore相对大的region。
Region server在运行过程中,在达到上述三个任何一个条件后,都会触发Flush的操作。如果在写量比较大的系统上,我们尽量要采用第2种方式来Flush,以减轻compaction的压力。因为在Hbase中compaction是单线程处理,我们要尽量减少IO操作和compaction的数量。
经过测试,关于memstore在写量比较大的情况下一般的设置规则为:
If 方式3 成立
活跃 Regions = (HBASE_HEAPSIZE *memstore.lowerLimit )/( flush.size / (2~3))
else if 方式 1
活跃 Regions = (Hlognumber*hdfsblock)/ (flush.size / (2~3))
else
我们期望的状态
解释说明;
1、为了防止过小的Hfile 这里取Flush.size 的1/3 为最小的File大小(如果使用gz等压缩算法,Hfile将非常小了。
2、活跃的region就是一个region server上在某一段时间只有部分region在写入数据,其他的处于假死状态。
3、通过上述公式,我们发现如果内存比较大的情况下,我们应该适当提高Hlog的存储数量,否则很容易导致条件1产生的Hfile,产生小文件。
1、Hlog的存储文件数目达到上限32(默认配置),一个Hlog的大小默认配置为HDFS的block的95%,这样的话,假定HDFS的块大小为64M,32个文件的话,可以存储的数据量为2G左右。 如果当Hlog的数据达到这个值后,会根据seqid把一些老的region 固化到Hfile中。
2、Memstore的大小设置为64M(默认配置),如果大于这个值则触发Flush的操作,大于64*3时,这个region将阻止put的写入操作。
3、RS上的内存达到内存配置下限0.35(hbase.regionserver.global.memstore.lowerLimit),上限为0.4,这里为了防止OOM,进行put操作的流控。 这里有有一个算法,选择compaction压力小,且Memstore相对大的region。
Region server在运行过程中,在达到上述三个任何一个条件后,都会触发Flush的操作。如果在写量比较大的系统上,我们尽量要采用第2种方式来Flush,以减轻compaction的压力。因为在Hbase中compaction是单线程处理,我们要尽量减少IO操作和compaction的数量。
经过测试,关于memstore在写量比较大的情况下一般的设置规则为:
If 方式3 成立
活跃 Regions = (HBASE_HEAPSIZE *memstore.lowerLimit )/( flush.size / (2~3))
else if 方式 1
活跃 Regions = (Hlognumber*hdfsblock)/ (flush.size / (2~3))
else
我们期望的状态
解释说明;
1、为了防止过小的Hfile 这里取Flush.size 的1/3 为最小的File大小(如果使用gz等压缩算法,Hfile将非常小了。
2、活跃的region就是一个region server上在某一段时间只有部分region在写入数据,其他的处于假死状态。
3、通过上述公式,我们发现如果内存比较大的情况下,我们应该适当提高Hlog的存储数量,否则很容易导致条件1产生的Hfile,产生小文件。
- 关于Memstore的大小设置一点经验
- 关于组件大小的一点经验
- 关于MemStore的刷新方式
- 关于MemStore的刷新方式
- 关于博客的一点经验
- 关于sql的一点经验
- EXT 做布局设置的一点经验
- EXT 做布局设置的一点经验
- 关于android手机设置项和数据缓存的一点经验
- 关于DP的一点维护经验
- 关于安装SQL Server的一点经验
- 经验交流:关于软件设计的一点心得体会
- 关于软件项目的一点经验
- 关于自动编译的一点经验
- 关于安装VisualStudio2008的一点经验
- 关于装双系统的一点经验!
- 关于SQLite数据库的一点小经验
- 关于Fragment回退的一点经验
- 解决MyEclipse开启后总是不停的在Update index
- Android 中文 API (101) —— AsyncTask
- Tomcat部署Java Web工程的一些心得总结
- http://poj.org/problem?id=2075
- 开个头 & 关于C1189错误
- 关于Memstore的大小设置一点经验
- c++ 虚析构函数
- SQL Server2005中按列连接字符串三种方法
- Meld:文件及目录对比工具
- sqlserver中如何实现时间按月,日,小时分组查询
- VS08与SAP对接工具
- 中国成苹果全球第二大市场 单季贡献45亿美元
- 关于泛型的认识和理解
- Java图形用户界面2—布局管理器