`
shenchunhui
  • 浏览: 147214 次
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
我们会经常谈及二级索引,这是对全表数据进行另外一种方式的组织存储,是针对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的 ...
Global site tag (gtag.js) - Google Analytics