HBase 是一个开源的非关系型分布式数据库,它是 Apache 的 Hadoop 项目的一部分,运行于 HDFS 文件系统之上,其参考了 Google 的 Bigtable 思想,HBase 在 Hadoop 和 HDFS 之上提供类似于 Bigtable 的功能。
特点
HBase 在列上实现了 BigTable 论文提到的压缩算法、内存操作和布隆过滤器。HBase 的表能够作为 MapReduce 任务的输入和输出,也可以通过 REST、Avro 或者 Thrift 的 API 来访问。在 Eric Brewer 的 CAP 理论中,HBase 属于 CP 类型的系统。
- 线性和模块化可扩展性。
- 严格一致的读写。
- 表的自动和可配置分片。
- RegionServer 之间的自动故障转移支持。
- 易于Java API 使用的客户端访问。
- 支持块缓存和布隆过滤器的实时查询。
- 支持 Thrift、Rest API 等访问。
- 可扩展的基于 Jruby 的(JIRB)Shell。
历史
HBase 于 2006 年诞生于 Powerset,一家从事自然语言处理和搜索的创业公司(后被微软收购)。
- 2006 年,Powerset 公司为了处理自然语言搜索产生的海量数据而开展了 HBase 项目。
- 2007 年 4 月,HBase 做为一个模块提交到 Hadoop 的代码库中,代码量在 8000 行。
- 2010 年 5 月,HBase 成为 Apache 的顶级项目,同年,Facebook 把 HBase 使用在其消息平台中。