hbase
iteye_12858
这个作者很懒,什么都没留下…
展开
-
hbase 0.96和hadoop 2.2 java 客户端的jar依赖
原来的hbase集群是hadoop 1.0.3 和 hbase 0.94.升级后为hadoop 2.2.0 和hbase 0.96升级后原来的java client无法连接到hbase,官方文档也没明确指出需要哪些jar包.尝试中各种错误,比如[quote] java.lang.NoClassDefFoundError: org/apache/hadoop/util...2014-02-24 20:06:22 · 218 阅读 · 0 评论 -
hbase 0.96中使用自定义的Comparator
如果想要在hbase中使用自定义的Comparator,过去应该是让Comparator实现Writable,把jar包放到hbase的lib下即可.可是用hbase0.96时,发现自定义Comparator无论如何没被调用,猜测应该利用protobuf将其序列化后传输到服务器端才行.后来尝试使用protobuf来序列化自定义的Comparator,果然获得了成功...2014-12-20 20:00:24 · 112 阅读 · 0 评论 -
hbase中使用OrderedBytes
hbase中的排序完全是byte数组的字典顺序,而float,int这样的数据,转换为byte数组之后,字典顺序往往不是其自然顺序.即 -43.2的byte数组可能比-1002.3的byte数组的字典顺序小,这样筛选排序就会有问题.在hbase中解决这样的问题,可以用[url=http://kabike.iteye.com/blog/2168857]自定义Comparator[/url]的方法,另...2014-12-20 20:11:19 · 258 阅读 · 0 评论 -
hbase中的分页
关系型数据库中用offset和limit分页很容易,但是在hbase中就不是一件容易的事.首先看PageFilter,这个filter只是提供了limit的功能,没有offset,而且并不能保证最后取得的result数量不超过PageFilter中设定的值.因为scan在next操作跨越region时,要open一个新的scanner,而PageFilter是分别序列化到每个region上,就...2015-01-15 18:34:35 · 864 阅读 · 0 评论 -
hbase并行scan
hbase自带的scan是串行的,在一个region扫描完了以后,会通过nextScanner方法扫描下一个region.有没有办法并行的扫描多个region呢?设想了一下,可以利用getRegionLocations得到一个HTable的region info的集合,这样就可以知道每个region的startrow和endrow,根据要扫描的条件,构造多个scan,使每个scan都分别设定对...2015-01-15 18:52:51 · 1034 阅读 · 0 评论 -
hbase的caching和batch
hbase scan的时候设置caching,可以每次多从服务器取得row的数量,减少RPC的请求,那么batch的作用是什么呢?batch指的是一次next的时候,取得keyvalue的最大值.这个设置的用处是什么呢?是因为假设hbase中的row特别宽,那么一次next的时候,取得的keyvalue特别多,导致内存不足,所以用batch限制next时取keyvalue的数量.但是bat...2015-01-15 19:24:14 · 435 阅读 · 0 评论 -
hbase利用hint来实现filter快速扫描
hbase只有rowkey上有索引,在rowkey上可以实现快速扫描,想在column上进行条件筛选或者是在rowkey的非前缀部分进行筛选只能通过filter,而一直以为filter只能顺序的遍历所有KeyValue.但实际上filter可以提供hint来使scanner reseek重新定位,提高查询效率.比如假设rowkey设计形式为barfoo,前三位是定长的bar属性,后三位...2015-01-15 20:23:08 · 306 阅读 · 0 评论 -
华为的二级索引的实现
华为二级索引的实现原理[url]http://download.csdn.net/detail/kabike/7532053[/url]具体实现也是在region级别用coprocessor维护索引,要注意的是为了维护数据表和索引表的对应region的局部性,需要自定义load balancer,在数据表region split的时候也要维护相应index表region的状态....原创 2015-01-21 22:09:42 · 202 阅读 · 0 评论 -
hbase MTTR介绍
[url]http://zh.hortonworks.com/blog/introduction-to-hbase-mean-time-to-recover-mttr[/url]收藏这篇文章有一段时间了,随着对hbase,hdfs理解的深入,最近才能看懂...其实作者说的主要问题在于,hbase集群往往和hdfs集群共用物理服务器.服务器的crash,在失去一个region server的...2015-01-24 14:04:28 · 243 阅读 · 0 评论 -
使用HBaseTestingUtility进行本地调试
要想测试hbase的功能,不一定非要启动hbase集群,可以用HBaseTestingUtility在本地进行hbase的部分功能调试 [code="java"] TableName tableName = TableName.valueOf("testBar"); String family = "cf"; HTableDescriptor htd = new HTa...2015-02-01 15:14:43 · 668 阅读 · 0 评论 -
用一套zookeeper,hadoop来支撑多个hbase集群
现有一套hbase集群了,又要求假设一套新的hbase集群,不想再搭建一套zookeeper,hadoop,可以让多套hbase集群共享zookeeper和hadoop,只需要修改如下属性即可[code="xml"] hbase.rootdir hdfs://dev01:9000/hbase2 zookeeper.znode.parent /hbase2...2014-12-20 19:50:49 · 389 阅读 · 0 评论 -
hbase为什么不会脑裂
前几天在思考一个问题,如果发生了网络隔离,一台region server与其他节点失去连接,但是客户端是缓存了region server地址的,那么客户端仍然会向这台region server发送写请求.那么hbase岂不是会发生gluster那样的脑裂么?后来又看了下文档,hbase的wal也是写在hdfs上的,如果网络隔离,那么wal写入就不会成功,那么对region的操作就会失败.就不存...2014-12-20 19:44:12 · 657 阅读 · 0 评论 -
windows下编译hbase0.96
前几天用windows7下的eclipse编译hbase0.96,发现hbase common总是不能编译通过,原来linux下whoami命令返回只有一行,而windows上装了Cygwin以后,运行whoami命令总是有个多余的空行,导致生成的java没法编译修改hbase-common\src下的saveVersion.sh文件,把user=`whoami`改成固定值,就可以顺利编译...2014-03-28 20:37:08 · 142 阅读 · 0 评论 -
谈opents db中时序数据的存储
[url=http://opentsdb.net]OpenTSDB[/url]是一种基于hbase的实时监控信息收集存储和展示平台.它的schema被精心设计用来存储监控数据这样的典型的时序数据.下面来分析下它的schema及其带来的好处.监控数据这样的时序序列数据都是带有时间的数据,比如cpu 20140305143405 15cpu 20140305143410 17......2014-07-23 18:56:28 · 294 阅读 · 0 评论 -
hbase中二级索引的实现--ihbase
一般来说,对数据库建立索引,往往需要单独的数据结构来存储索引的数据.在为hbase建立索引时,可以另外建立一张索引表,查询时先查询索引表,然后用查询结果查询数据表.[img]http://dl2.iteye.com/upload/attachment/0099/4712/041675af-eed4-3f4d-9007-7367504ca6e5.png[/img]这个图左边表示索引表,右...2014-07-23 20:04:09 · 313 阅读 · 0 评论 -
hadoop和hbase使用时要特别注意/etc/hosts文件
/etc/hosts文件对hbase有很重要的作用比如在hbase的master启动的时候,需要在zookeeper里注册自己的hostname,master取得hostname的方法是[code="java"] String hostname = Strings.domainNamePointerToHostName(DNS.getDefaultHost( conf.get...2014-09-01 20:30:26 · 3194 阅读 · 0 评论 -
hbase和列式数据库
一直都以为hbase是列式数据库...结果这几天因为要做数据仓库,专门研究了下列式数据库,发现hbase根本不是列式数据库...列式数据库还是关系型数据库嘞......2014-10-21 18:50:27 · 623 阅读 · 0 评论 -
key value和document类型的nosql数据库的思考
没事时思考了这样一个问题.hbase这样的key value存储比mongodb为代表document存储有哪些优势呢?比如在mongodb里的存储的文档(不清楚具体的存储方式)key1:{attr1:bar,attr2:foo,attr3:barfoo} 存储在hbase中是key1:attr1:barkey1:attr2:fookey1:attr3:...2014-10-21 18:54:27 · 514 阅读 · 0 评论 -
hbase中的BloomFilter起作用的场景
hbase中有BloomFilter的功能,可以在有些情况下过滤掉不需要的hfile,节省IO.但是BloomFilter在什么情况下起作用呢?根据[url=http://hbase.apache.org/book/perf.schema.html]hbase文档[/url],只有get操作才使用到BloomFilter[quote]In terms of HBase, Bloom fil...2014-12-09 18:57:36 · 327 阅读 · 0 评论 -
Opentsdb的技术特点
[size=large]1 客户端[/size]opentsdb的hbase客户端,使用了他们自己编写的异步非阻塞[url=https://github.com/OpenTSDB/asynchbase]hbase客户端[/url]据说比hbase自带的客户端性能好很多.下面是一个评测结果[url]http://www.tsunanet.net/~tsuna/asynchbase/b...2014-12-09 19:15:07 · 620 阅读 · 0 评论 -
浅谈Hbase 的强一致性
从一开始就知道hbase是CAP中的CP系统,即hbase是强一致性的.我原来一直以为hbase的强一致性是因为底层的HDFS写入时,必须所有副本都写入成功才能返回.最近才想明白,hbase之所以是CP系统,实际和底层HDFS无关,它是CP系统,是因为对每一个region同时只有一台region server为它服务,对一个region所有的操作请求,都由这一台region server来响应,自...2014-12-20 19:35:14 · 1394 阅读 · 0 评论 -
hbase MemStore避免内存碎片
CMS是比较常用的一种gc方法,但是默认情况下CMS不进行compact,因此往往出现内存碎片.而hbase中由于region数据的非集中分布,更容易导致内存碎片.此时在内存还有很大可用空间的时候,也不能创建对象,导致了stop the world[img]https://www.cloudera.com/wp-content/uploads/2011/02/frag-drawing....2015-02-14 16:29:58 · 275 阅读 · 0 评论