首页

微软收购Powerset后HBase的项目还会继续吗?

2008-07-03 22:05   分类:HBase  

七月一号,微软买下了自然语言处理方面的公司Powerset(HBase的主要贡献者).据传言花了一亿美金.Powerset将会加入微软的Live Search团队.Powerset的语义搜索是建立在开源软件Hadoop上.看来微软在追赶Google上是不惜血本.Google现在的搜索还是基于用户输入的单词,而Powerset的语义理解更能体现用户意图,如果你输入inn,那么搜索引擎会返回搜索引擎对inn的解释和理解.在这一点上和旅游搜索引擎uptake.com一样.现在的搜索引擎并不理解"shrub"和"tree"在概念上基本相同,"cancer"表示癌症,可又表示巨蟹座,微软希望Powerset能帮助解决这些问题,以便搜索引擎能更好的体现用户意图。

那么微软下的Powerset还会继续贡献2.0,3.0版本的Hbase吗?我不知道.但是我们还有另一个选择:hypertable.

 

HBase的概念和性能选项

2008-06-26 14:04   分类:HBase, Hadoop  

在本文中的HBase术语:
基于列:column-oriented
行:row
列组:column families
列:column
单元:cell

理解HBase(一个开源的Google的BigTable实际应用)最大的困难是HBase的数据结构概念究竟是什么?首先HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.另一个不同的是HBase基于列的而不是基于行的模式.

Google's BigTable论文清楚地解释了什么是BigTable:
Bigtable是一个疏松的分布式的持久的多维排序的map,这个map被行键,列键,和时间戳索引.每一个值都是连续的byte数组.(A Bigtable is a sparse, distributed, persistent multidimensional sorted map. The map is indexed by a row key, column key, and a timestamp; each value in the map is an uninterpreted array of bytes.)

Hadoop wiki的HBase架构页面提到:
HBase使用和Bigtable非常相同的数据模型.用户存储数据行在一个表里.一个数据行拥有一个可选择的键和任意数量的列.表是疏松的存储的,因此用户可以给行定义各种不同的列.(HBase uses a data model very similar to that of Bigtable. Users store data rows in labelled tables. A data row has a sortable key and an arbitrary number of columns. The table is stored sparsely, so that rows in the same table can have crazily-varying columns, if the user likes.)

[More...]

Hadoop Summit Video

2008-05-29 14:15   分类:HBase, Hadoop  

有事好久没有更新了,现在放上Hadoop Summit视频,下载视频推荐使用支持RTMP协议的orbit下载软件,播放FLV视频的软件下载.所有的跟视频配套的文档在这个页面

[More...]

HBase中Bloom Filter的使用

2008-02-29 18:09   分类:HBase  

  BigTable是Google的一个分布式的结构化数据存储系统.如果你不懂什么是BigTable.请看美人他爹的这篇文章HBase是在Hadoop上的建立一个跟BigTable相仿的一个系统.正像BigTable在使用布隆过滤器减少磁盘访问来提高效率.HBase同样使用布隆过滤器来提高效率.我们先来看看布隆过滤器的误差算法,然后再来解释HBase中如何使用布隆过滤器.

布隆过滤器不会有错判(Flase Negative), 可能有误判(False Positive). 我们来算一下我们认为能够接受的误判概率. 假设Hash函数是理想的, 也就是说, 函数值是均一分布的, Bloom Filter 长为 m bits, 那么对于一个输入, 某一位没被设置的概率是image002.gif 而我们一共有 k个独立不相关的Hash函数, 所以这一位保持为 0的概率应该是image005.gif 假如我们一直插入了 n个元素进来, 某一位是0的概率就是image007.gif .用1 减去它, 就是这一位是1 的概率了. 如果我们这时候开始测试元素是否在集合中而发生了错误, 就是说, 明明元素不在集合里面可是Hash 过后每一位都是1.这个的概率就是image009.gif , 假设m=20,n=1,k=8算出来的错误率是0.00013955336951317957 (Linux Bash: echo "(1-e(-8*1/20))^8"| bc -l).

[More...]