关于MemStore的刷新方式: 1、MemStore达到上限hbase.hregion.memstore.flush.size?默认是128M的时候,会触发MemStore的刷新。这个参数表示单个MemStore的大小的阈值。这个时候是不阻塞写操作的。 ? 2、当一个R...
分类:
其他好文 时间:
2014-12-12 00:07:49
阅读次数:
333
MemStore简介:上图为HBase的读写过程的大概描述;写请求过程:client---------->WAL(WriteAheadLOG)----------->MemStore------------->HFile--------->END读请求过程:client---------->MemStore-------->BlockCache------->HFile------------>ENDMe..
分类:
其他好文 时间:
2014-10-18 18:32:25
阅读次数:
310
这里面说的read既包括get,也包括scan,实际底层来看这两个操作也是一样的。我们将要讨论的是,当我们从一张表读取数据的时候hbase到底是怎么处理的。分二种情况来看,第一种就是表刚创建,所有put的数据还在memstore中,并没有刷新到hdfs上;第二种情况是,该store已经进行多次的fl...
分类:
其他好文 时间:
2014-09-21 00:08:49
阅读次数:
623
1、region热点:
开始会不断往一个region写,可以预划分region
在rowkey加哈希前缀 对region server数量取余
2、memstore提高写性能,blockcache提高读性能,看需求调整
3、使用bloomfilter,如果大多是scan顺序读,可将block设大些,默认块大小是64K,可以设为128
4、设计好rowkey
5、关闭major comp...
分类:
其他好文 时间:
2014-08-28 16:58:40
阅读次数:
176
关于MemStore的补充在通过HStore.add向store中加入?一个kv时,首先把数据写入到memstore中。这一点没有什么说明;publiclongadd(finalKeyValue kv) {lock.readLock().lock();try{returnthis.memstore....
分类:
其他好文 时间:
2014-08-27 12:50:57
阅读次数:
235
HBase中MemStore的HeapSize 及
flush成HStoreFile的大小变化,KeyValue的详解分析
分类:
其他好文 时间:
2014-06-08 19:51:06
阅读次数:
341
触发region
flush的因素有很多,如手动触发,memstore压力触发,memstore到达限制触发,flush时间触发等。regionserver的flush由flush实际操作步骤为
1.获得region写锁,将region的所有store执行prepare,产生snapshort,释....
分类:
其他好文 时间:
2014-05-31 21:57:30
阅读次数:
317
这一章讲hbase的缓存机制,这里面涉及的内容也是比较多,呵呵,我理解中的缓存是保存在内存中的特定的便于检索的数据结构就是缓存。之前在讲put的时候,put是被添加到Store里面,这个Store是个接口,实现是在HStore里面,MemStore其实是它底下的小子。那它和Region
Server...
分类:
其他好文 时间:
2014-05-27 00:16:07
阅读次数:
376
先上一张图讲一下Compaction和Split的关系,这样会比较直观一些。Compaction把多个MemStore
flush出来的StoreFile合并成一个文件,而Split则是把过大的文件Split成两个。之前在Delete的时候,我们知道它其实并没有真正删除数据的,那总不能一直不删吧,下...
分类:
其他好文 时间:
2014-05-25 18:41:37
阅读次数:
415
HLog概述hbase在写入数据之前会先写入MemStore,成功了再写入HLog,当MemStore的数据丢失的时候,还可以用HLog的数据来进行恢复,下面先看看HLog的图。旧版的HLog是实际上是一个SequceneFile,0.96的已经使用Protobuf来进行序列化了。从Writer和R...
分类:
其他好文 时间:
2014-05-15 07:38:50
阅读次数:
377