- 浏览: 147322 次
- 来自: 杭州
最新评论
-
kelvinnecessary:
朝阳之辉 写道你好,看了你这篇文章,受益匪浅。你文中提到:“1 ...
HBase中数据的多版本特性潜在的意外 -
leibnitz:
怎么谈hlog配hfile图?
HBase 0.94版本新特性、性能优化详解及使用(一)之数据压缩(DataBlock compression,HLog compression) -
Pun_C:
0.98版本主要流程跟博主的文章几乎没变啊,看源码看晕了,有了 ...
HBase 源码阅读之 读过程及scanner -
blackproof:
chunkpool怎么用的,要是设置了0.1会跟 memsto ...
GC trouble on HBase -
blackproof:
RAMQueueEntry的writeToCache这个方法, ...
HBase上关于CMS、GC碎片、大缓存的一种解决方案:Bucket Cache
文章列表
我们会经常谈及二级索引,这是对全表数据进行另外一种方式的组织存储,是针对table级别的。如果要为HBase上的表实现一个强一致性的二级索引,那么就无法逃避分布式事务,而这一直是用户最期待的功能。 而即使只需要保证 ...
PREFIX_TREE(HBASE-4676)是HBase 0.96版本中新增加的一种DataBlock Encode算法。
1.什么是PREFIX_TREE
关于前缀树的介绍可以参考维基百科http://zh.wikipedia.org/wiki/Trie
当然其的实现会有差别
2.HBase中的DataBlock
DataBlock是KeyValue的集合,是Hfile中存储数据的结构体,可以搜索Hfile了解之
3.什么是DataBlock Encode
DataBlock Encode是HBase 0.94版本引入的特性,可以将重复的row/fami ...
最近几天一直纠结在HBase的GC问题上,虽然没有质的收获,但也有一些新的心得,对HBase上GC产生的过程有了更深的认识。
由于基本采用的都是CMS回收,所以讨论也针对的是CMS回收。
GC问题可以简单地归结为YGC停顿过长和FullGC触发 ...
介绍BucketCache前,先对HBase的Cache做个介绍: 一.HBase在读取时,会以Block为单位进行cache,用来提升读的性能; 二.Block可以分类为DataBlock(默认大小64K,存储KV)、BloomBlock(默认大小128K,存储BloomFilter数据)、IndexBlock(默认大小128K,索引数据 ...
常用到的HBase启动脚本有:
1.$HBASE_HOME/bin/start-hbase.sh
启动整个集群
2.$HBASE_HOME/bin/stop-hbase.sh
停止整个集群
3.$HBASE_HOME/bin/hbase-daemons.sh
启动或停止,所有的regionserver或zookeeper或backup-master
4.$HBASE_HOME/bin/hbase-daemon.sh
启动或停止,单个master或regionserver或zookeeper
以start-hbase.sh为起点,可以看看脚本间的一些调用关系
start-hbase.sh的 ...
查看HFile是HBase本身自带的一个很实用的工具
使用也很简单:
$ ${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.io.hfile.HFile
usage: HFile [-a] [-b] [-e] [-f <arg>] [-k] [-m] [-p] [-r <arg>] [-v]
-a,--checkfamily Enable family check
-b,--printblocks Print block index meta data
-e,--printkey Pri ...
查看解析HLog也是HBase本身自带的一个小工具
使用很简单:
$ ${HBASE_HOME}/bin/hbase org.apache.hadoop.hbase.regionserver.wal.HLog
Usage: HLog <ARGS>
Arguments:
--dump Dump textual representation of passed one or more files
For example: HLog --dump hdfs://example.com:9000/hbase/.logs/MACHINE/LOGFILE
--spl ...
众所周知,HBase 0.94对性能做了很多优化,记录一下个人对其实现细节及如何更好应用的理解。
0.94引入了两个在HBase层的数据压缩:
一.DataBlock compression
1.1 作用
DataBlock compression指的是对HFile v2中的Data Block进行压缩,Data Block既 ...
1.Bloomfilter的原理?
可参考 http://hi.baidu.com/yizhizaitaobi/blog/item/cc1290a0a0cd69974610646f.html
2.Bloomfilter在HBase中的作用?
HBase利用Bloomfilter来提高随机读(Get)的性能,对于顺序读(Scan)而言,设置Bloomfilter是没有作用的(0.92以后,如果 ...
HBase做为KeyValue结构存储,在存储上是依照RowKey的字典序进行排序,对于很多应用而言这可能远远不够,好在HBase的数据可以存储多个版本,并且版本可以排序,其理论上最大的版本数目Integer.MAX_VALUE,这在一定程度上简化应用端 ...
看过Hbase 读流程的代码的同学 对scanner这个词应该不会陌生
Hbase 在读流程时 具体是怎么围绕scanner展开的,最近仔细地看了代码后算是弄清了
HBase中的scanner实例关系如下图
首先,无论是GET还是scan的读数据,都是从RegionScanner的next ...
找到了这本书的电子版,有空时边看边记吧
当regionserver收到来自客户端的Get请求时,调用接口
public Result get(byte[] regionName, Get get)
{
...
HRegion region = getRegion(regionName);
return region.get(get, getLockFromId(get.getLockId()));
...
}
我们看HRegion.get接口,其首先会做family检测,保证Get中的family与Table的相符,然后通过RegionScanner.next来返回result
而Scanner是Hbase读流程中的主要类,先做一 ...
当Master通过ZK获知Regionserver挂掉以后,通过调用expireServer接口进行处理
public synchronized void Hmaster.ServerManager.expireServer(final HServerInfo hsi){
获取serverName
从onlineserverlist中获取serverinfo
如果serverinfo为空,则抛sever不在线上的警告,return
如果已经存在于deadservers中,则抛警告,return
加到deadservers中
从onlineservers中删除
删除与该server的 ...