HBase 基础教程

HBase 介绍


HBase 是一个开源的非关系型分布式数据库(NoSQL),它是 Apache 软件基金会的 Hadoop 项目的一部分,运行于 HDFS 文件系统之上,是分布式的,版本化的,其参考了 Google 的 Bigtable 思想,正如 Bigtable 利用 Google 文件系统提供的分布式数据存储一样,Apache HBase 在 Hadoop 和 HDFS 之上提供类似于 Bigtable 的功能。它也和 Hadoop 一样由 java 语言编写。

特点

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 使用在其消息平台中。