HBase基础
HBase是一个在HDFS上开发的面向列的分布式数据库。如果需要实时地随机读/ 写超大规模数据集,就可以使用HBase这一 Hadoop应用。
虽然数据库存储和检索的实现可以选择很多不同的策略,但是绝大多数解决办法—— 特别是关系数据库技术的变种一不是为大规模可伸缩的分布式处理设计的。很多 厂商提供了复制(replication)和分区(partitioning)解决方案,让数据库能够从单个节 点上扩展出去,但是这些附加的技术大都属于“事后”的解决办法,而且非常难以 安装和维护。而且这些解决办法常常要牺牲一些重要的RDBMS特性。在一个“扩 展的” RDBMS上,连接、复杂査询、触发器、视图以及外键约束这些功能要么运 行开销大,要么根本无法用。
HBase从另一个方向来解决可伸缩性的问题。它自底向上地进行构建,能够简单地 通过增加节点来达到线性扩展。HBase并不是关系型数据库,它不支持SQL。但 在特定的问题空间里,它能够做RDBMS不能做的事:在廉价硬件构成的集群上管 理超大规模的稀疏表。
HBase的一个典型应用是webtable, 一个以网页URL为主键的表,其中包含爬取 的页面和页面的属性(例如语言和MIME类型)。webtable非常大,行数可以达十亿 级(billion)。在webtable上连续、批处理地运行用于分析和解析的MapReduce作 业,从而获取相关的统计信息,增加验证的MIME类型列,供捜索引擎进行索引 的解析后的文本内容。与此同时,“爬取器”(crawler)随机地以不同速度访问表中 的不同行,更新它们的内容;在用户点击访问网站的缓存页面时,这些随机访问的 页面实时提供给他们使用。
背景
HBase项目是由Powerset公司的Chad Walters和Jim Kelleman在2006年末发起 的。当时,它是根据Google的Chang等人刚发表的论文“Bigtable: A Distributed Storage System for Structured Data" (hltp://labs.google.com/papers/bigtable.html)来设计的。2007年2月,Mike Cafarella提供代码,形成了一个基本可以用的系统, 然后
HBase的第一个发布版本是在2007年10月和Hadoop 0.15.0捆绑在一起发布的。 2010年5月 ,HBase从Hadoop子项目升级成Apache顶层项目。HBase的产品用 户包括 Adobe, StumbleUpon, Twitter 以及 Yahoo 的一些小组。