hbase中Compaction的理解及RegionServer内存的使用,CacheBlock机制

Compaction有两种类型:

(1)minor compaction:属于轻量级。将多个小的storefile文件重写为数量较少的大storefile文件,减少存储文件的数量,实际上是个多路归并的过程。它不会删除被标记为“删除”的数据和以往过期的数据,并且执行过一次minor合并操作后,还会有多个storefile文件。因为Hfile的每个文件都是经过归类的,所以合并速度很快,只受到磁盘I/O性能的影响。

(2)major compaction:属于重量级。将一个region中,一个列簇的若干个storefile重写为一个storefile,它能扫描所有的<key,value>对,顺序重写所有的数据,重写数据的过程中,会略过做了删除标记的数据,断言删除在此时生效,同时会阻塞所有客户端对该操作所属的region的请求直到合并完毕,最后删除已合并的storefile文件

RegionServer的内存,在设置的时候,一般这样配置:

(1)MemStore ,约占40%的内存空间(主要用于写):

写请求会先写入memstore,RegionServer会给每个region提供一个memstore, memstore写满以后,会启动flush刷新到磁盘。当memstore的总大小超过限制时,会强行启动flush进程,从最大的memstore开始flush知道低于限制

(2)BlockCache,约占40%的内存空间(主要用于读):

读请求先到memstore中查数据,查不到就到blockCache中查,再查不到就到磁盘上读,并把读的结果放入blockCache。Blockcache采用lru算法,当blockcache达到上限值时,淘汰掉最近最久未使用的一批数据淘汰掉,每个regionserver只有一个blockcache

(3)其他,约占20%的内存空间。

在注重读响应时间的应用场景下,可以将blockcache设置的大一些,memstore设置的小一些,以加大缓存的命中率。

blockCache分级思想:

(1)首先通过inmemory类型cache,可以由选择地将inmemory的column famlies放到RegionServer内存中,例如meta元数据信息;

(2)通过区分Single和Multi类型的cache,可以防止由于Scan操作带来的频繁颠簸,将最少使用的block加入到淘汰算法中去。

默认配置下。对于整个BlockCache的内存,按照以下百分比分给Single、Multi、InMemory使用:0.25,0.50和0.25

时间: 2024-07-29 03:06:51

hbase中Compaction的理解及RegionServer内存的使用,CacheBlock机制的相关文章

hbase中regionserver进程没过一段时间就会down

各位,哪位大神帮忙看一下,cdh5.9.2环境中hbase中的regionserver服务没过一段时间就会down 本人已经确认不是时间同步问题,下面是具体的regionserver日志信息 2018-05-05 15:12:42,461 INFO org.apache.hadoop.hbase.util.VersionInfo: HBase 1.2.0-cdh5.9.22018-05-05 15:12:42,480 INFO org.apache.hadoop.hbase.util.Versi

【转】HBase中Zookeeper,RegionServer,Master,Client之间关系

在2.0之前HDFS中只有一个NameNode,但对于在线的应用只有一个NameNode是不安全的,故在2.0中对NameNode进行抽象,抽象成NamService其下包含有多个NameNode,但只有一个运行在活跃状态,因此需要zookeeper进行选举和自动转换.一旦active当掉之后zookeeper会自定进行切换将standby切换为active. 图片来源:HDFS-1623设计文档 图片作者: Sanjay Radia, Suresh Srinivas 如上图,每一个运行Name

Android 源码系列之&lt;十三&gt;从源码的角度深入理解LeakCanary的内存泄露检测机制(中)

转载请注明出处:http://blog.csdn.net/llew2011/article/details/52958563 在上篇文章Android 源码系列之<十二>从源码的角度深入理解LeakCanary的内存泄露检测机制(上)中主要介绍了Java内存分配相关的知识以及在Android开发中可能遇见的各种内存泄露情况并给出了相对应的解决方案,如果你还没有看过上篇文章,建议点击这里阅读一下,这篇文章我将要向大家介绍如何在我们的应用中使用square开源的LeakCanary库来检测应用中出

hbase中hbase和regionserver端口冲突问题

hbase中 hmaster 和regionserver的端口冲突问题 java.lang.RuntimeException: Failed construction of Regionserver: class org.apache.hadoop.hbase.regionserver.HRegionServer at org.apache.hadoop.hbase.regionserver.HRegionServer.constructRegionServer(HRegionServer.ja

Hbase 中 hbase-site.xml 参数含义

hbase.client.scanner.caching 定义在扫描器中调用next方法时取回的行数.数值越大,在扫描时客户端需要对RegionServer发出的远程调用次数越少.数值越大,客户端消耗内存越大. hbase.balancer.period region均衡器在HBase Master中周期性运行.该属性定义了均衡器运行的时间间隔,默认5分钟,单位毫秒. hbase.client.write.buffer 客户端HTable实例写缓存,单位Byte.越大RPC调用越少,同时占用更多

ZooKeeper原理及其在Hadoop和HBase中的应用

简介 ZooKeeper是一个开源的分布式协调服务,由雅虎创建,是Google Chubby的开源实现.分布式应用程序可以基于ZooKeeper实现诸如数据发布/订阅.负载均衡.命名服务.分布式协调/通知.集群管理.Master选举.分布式锁和分布式队列等功能. 基本概念 本节将介绍ZooKeeper的几个核心概念.这些概念贯穿于之后对ZooKeeper更深入的讲解,因此有必要预先了解这些概念. 集群角色 在ZooKeeper中,有三种角色: Leader Follower Observer 一

为什么不建议在 HBase 中使用过多的列族

我们知道,一张 HBase 表包含一个或多个列族.HBase 的官方文档中关于 HBase 表的列族的个数有两处描述: A typical schema has between 1 and 3 column families per table. HBase tables should not be designed to mimic RDBMS tables. 以及 HBase currently does not do well with anything above two or thre

hbase中的位图索引--布隆过滤器

在hbase中,读业务是非常频繁的.很多操作都是客户端根据meta表定位到具体的regionserver然后再查询region中的具体的数据. 但是现在问题来了,一个region由一个memstore以及多个filestore组成,memstore类似缓存在服务器内存中,可以提高插入的效率,当memstore达到一定大小(由hbase.hregion.memstore.flush.size设置)或者说用户手动flush之后,就会固化存储在hdfs之类的磁盘系统上.也就是说一个region可以对应

淘宝在hbase中的应用和优化

本文来自于NoSQLFan联合作者@koven2049,他在淘宝从事Hadoop及HBase相关的应用和优化.对Hadoop.HBase都有深入的了解,本文就是其在工作中对HBase的应用优化小结,分享给大家. 目 录 [ - ] 前言 原因 应用情况 部署.运维和监控 测试与发布 改进和优化 将来计划 前言 hbase是从 hadoop中分离出来的apache顶级开源项目.由于它很好地用java实现了google的bigtable系统大部分特性,因此在数据量猛增的今天非常受到欢迎.对于淘宝而言