《HBase权威指南》一导读


《HBase权威指南》一导读

前 言

HBase权威指南
你阅读本书的理由可能有很多。可能是因为听说了Hadoop,并了解到它能够在合理的时间范围内处理PB级的数据,在研读Hadoop的过程中发现了一个处理随机读写的系统,它叫做HBase。或者将其称为目前流行的一种新的数据存储架构,传统数据库解决大数据问题时成本更高,更适合的技术范围是NoSQL。

无论你是如何来到这里的,我都希望你能够了解并学习如何在企业或组织中使用HBase解决海量数据问题。你可能有关系型数据库的背景,但更希望去研究这个“列式存储”系统;也许你听说HBase能够不费力地进行线性拓展,并且有足够的理由成为下一代网络系统。

在2007年年底,我曾面临百万级的文档存储需求,并且需要满足容错和可扩展等要求。我拥有丰富的MySQL数据库经验,并使用这种数据库来存储数据,最终服务于我的网站的用户。MySQL可以在运行于一台服务器的同时,拥有另一台备份服务器,其无法应对如此海量数据的处理,于是我只好寻找其他可用的存储数据库。

我的口头禅是:“Google是如何解决这类问题的?”后来我接触了Hadoop,在短暂使用Hadoop之后,我面临随机读写的问题——但是这个问题已经得以解决:2006年Google发表了BigTable①论文,Hadoop开发者拥有了BigTable的开源实现,并称其为HBase。这就是解决我的问题的答案,所以这一切看起来顺理成章……

如今,我已经不再回忆自己刚开始接触Hadoop和HBase的日子有多艰难了。我希望可以从今天开始使用HBase,HBase目前已经成熟,接近1.0版本,并且目前已经有大量知名企业在使用,如Facebook、Adobe、Twitter、Yahoo!、趋势科技和StumbleUpon(http://wiki.apache.org/hadoop/HBase/PoweredBy)。我的集群是第一个生产集群(迄今为止),到目前也遇到了许多有趣的问题。

如预期所料,HBase从0.1x版本开始成为社区项目,我有幸为这个项目贡献代码,并最终被要求成为全职的committer。

过去几年我从其他开发者身上学到了许多知识,并且一直在努力地学习。我的信念是,我们还远没有达到这个技术的顶峰,而这个技术也会随着时间的推移不断地成长和演变。让我们用这本书对整个HBase开发者社区致以敬意,我的写作目标不仅仅是覆盖HBase的工作机制,而且还要为用户提供如何将这一技术用到自己的使用场景中。

我强烈地感觉到你来到这里的原因是打算使用HBase解决你遇到的问题。现在让我们来解开谜底。

目 录

第1章  简介
1.1  海量数据的黎明
1.2  关系数据库系统的问题
1.3  非关系型数据库系统Not-Only-SQL(简称NoSQL)
1.4  结构
1.5  HBase:Hadoop数据库
第2章 安装
第3章  客户端API:基础知识
3.1  概述
3.2  CRUD操作
3.3  批量处理操作
3.4  行锁
3.5  扫描
3.6  各种特性
第4章 客户端API:高级特性
第5章 客户端API:管理功能
第6章 可用客户端
第7章 与MapReduce集成
第8章 架构
第9章 高级用法
第10章 集群监控
第11章 性能优化
第12章 集群管理