HBase权威指南 中文版,非常经典,带目录书签内容提要本书探讨了如何通过使用与 HBase高度集成的 Hadoop将 HBase的可伸缩性变得简单;把大型数据集分布到相对廉价的商业服务器集群中;使用本地Java客户端,或者通过提供了REST、Avro和 Thrift应用编程接口的网关服务器来访问 HBase;了解 HBase架构的细节,包括存储格式、预写日志、后台进程等;在 HBase中集成 Mapreduce框架;了解如何调节集群、设计模式、拷贝表、导入批量数据和删除节点等本书适合使用 HBase进行数据库开发的高级数据库研发人员阅读。O' Reilly Media,nc介绍O' Reilly Media通过图书、杂志、在线服务、调査研究和会议等方式传播创新知识。自1978年开始, OReilly一直都是前沿发展的见证者和推动者。超级极客们正在开创着未来,而我们关注真正重要的技术趋势——通过放大那些“细微的信号”来刺激社会对新科技的应用。作为技术社区中活跃的参与者, O'Reilly的发展充满了对创新的倡导、创造和发扬光大。O' Reilly为软件开发人员带来革命性的“动物书”;创建第一个商业网站(GNN);组织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了Make杂志,从而成为DIY革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。O' Reilly的会议和峰会集聚了众多超级极客和髙瞻远瞩的商业领袖,共同描绘出开创新产业的革命性思想。作为技术人士获取信息的选择, OReilly现在还将先锋专家的知识传递给普通的计算机用户。无论是通过书籍出版,在线服务或者面授课程,每一项 O'Reilly的产品都反映了公司不可动摇的理念——信息是激发创新的力量。业界评论O' Reilly radar博客有口皆碑。Wired“ORll凭借一系列(真布望当初我也想到了)非凡想法建立了数百万美元的业务。”Business 2.0“O' Reilly Conference是聚集关键思想领袖的绝对典范。”-CRN“一本 O Reilly的书就代表一个有用、有前途、需要学习的主题Irish TimesTim是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照Yogi berra的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去Tim似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错-Linux Journal感谢我的妻子Kaja,感谢我的女儿 Laura,以及我的儿子Leon。我爱你们!推荐序近年来,新兴的互联网服务领域,以及电信、金融和交通等各传统行业出现了数据资产的爆炸性增长,这些数据资产的类型以非结构化和半结构化为主,如何低成本且高效率地存储和处理PB甚至EB量级的数据成为了极大的挑战Google公司提出的 MapReduce编程框架、GS文件系统和 Big Table存储系统成为了大数据处理技术的开拓者和领导者,而源于这三项技术的 Apache Hadoop等开源项目则成为了大数据处理技术的事实标准,迅速推广至国内外各大互联网企业,成为了PB量级大数据处理的成熟技术和系统。面对不同的应用需求,基于 Hadoop的数据处理工具也应运而生,例如,Hive、Pig等已能够很好地解决大规模数据的离线式批量处理问题。但是, HadoopIDFS适合于存储非结构化数据,且受限于 Hadoop MapReduce编程框架的高延迟数据处理机制,使得 Hadoop无法满足大规模数据实时处理应用的需求。传统的信息系统和web应用大多采用LAMP架构构建,并使用关系型数据库存储、组织和管理结构化或半结构化数据。通用的关系型数据库无法很好地应对在数据规模剧增时导致的系统扩展性和性能问题。因此,业界出现了一类面向半结构化数据存储和处理的高可扩展、低写入/査询延迟的系统,例如,键值存储系统、文档存储系统和类 BigTable存储系统等,这些特性各异的系统也可统称为 NOSQL系统。 Apache HBase就是其中已迈向实用的成熟系统之一。 HBase之所以能成为迈向实用的成熟系统,一是核心思想来源于 Google的 BigTable,二是有 Apache及 Hadoop开源社区的支撑,三是有诸如 Facebooky淘宝和支付宝等互联网公司的应用实践,保证了 HBase系统的稳定性和可用性。目前,作为关系型数据库的有益补充, HBase已成功应用于互联网服务领域和传统行业的众多在线式数据分析处理系统中。本书涉及 HBase使用和开发过程中的各方面内容,章节组织由浅入深,内容阐述细致入微并且贴近实际,可以作为参考书以方便读者在开发过程中随时查阅。本书译者之刘佳向 HBase开源社区提交过多项错误修复和新功能,参与过多项 HBase有关的大数据分析系统研发项目,积累了丰富的 HBase系统开发经验。我相信本书对于 HBase使用者和开发者来说,都是及时和不可或缺的。查礼于中科院计算所2013年7月译者序随着历史数据的积累和数据量的高速增长,海量数据领域越来越被重视,且该领域涌现出了非常多的新技术。技术的发展和时间的沉淀使得 HBase开始被大家广泛认可,成为海量数据在线存储领域的首选。本书是讲述 HBase相关技术的第一本图书,也是著名图书出版商 O'Reilly出版发行的HBase权威书籍。本书从架构、开发、应用和运维等多个角度描述了 HBase,深入介绍了 HBase内核的原理和机制以及社区的发展方向,并提供了应用层面的多种示例和源代码。本书为每个用例和知识点提供了丰富的解释和注意要点,使用户可以由浅入深地了解原理并深度使用其功能,并且体现了在 HBase教学方面的最新进展和最高水平。本书的成功离不开 Lars george的努力。在 HBase还处于萌芽时期时, Lars George就开始投入了大量的精力,从修复 HBase中的问题到优化性能,推广 HBase并编写 HBase可用性文档,他是 HBase领域里大师级的人物。而这本《 HBase权威指南》花费了LarsGeorge许多的时间和精力。阅读本书后,我们不得不承认这本大师级的著作很好地应对了社区中 HBase发展所面临的挑战。不得不说的是,本书著作和翻译经历的时间较长,而社区中 HBase发展速度较快,许多版本已经发行,许多问题也得以修复,因此,本书最终落地后会与最新HBase版本的功能特性有少许描述性出入,还望广大读者见谅在翻译过程中,我们深刻地发现国外技术领域的专业性,深深地被世界级的高水平技术所震撼。我们由衷地希望本书中文版的出版能够推动国内 HBase教学、使用和发展。本书译者代志远在翻译期间就职于阿里巴巴,译者刘佳是中科院计算所研究生,现为普泽天玑技术总监,译者蒋杰在腾讯担任数据与运营支撑平台副总经理。感谢人民邮电出版社的编辑,他们为保证本书质量付出了大量的努力。本书中概念和术语较多,许多概念和术语尚无公认的中文译法,加之译者水平有限,译文中若有不妥之处,恳请读者批评指正代志远2013年7月序HBase的故事开始于2006年,当时旧金山的 Powerset创业公司试图建立一个网页的自然语言搜索引擎,但他们构建索引时涉及一个复杂的过程,比标准的分词索引结果集大了两个数量级。他们曾经使用 Amazon Web service存储索引,但是爬虫抓取过程中的负荷主要集中在此。(叮铃铃,叮铃铃“您好!这里是AWS,无论你正在运行什么请停止运行!”)他们恰好在寻求解决方案,而此时 Google的 Bigtable论文发表了。Powerset公司的工程负责人 Chad Walters此时发表了如下的言论:与 Google基于GFS( Google File System)构建的 BigTable一样,在 Hadoop的分布式文件系统(HDFS)基础上构建一个开源系统是一个非常不错的主意:(1)这套架构是成熟的并且可拓展;(2)我们可以直接利用 Hadoop的HDFS;(3)我们可以扩大Hado生态系统的影响力BigTable论文发表后,在社区中,人们一次又一次地讨论基于 Hadoop构建类 BigTable系统的可行性。在2007年年初, Mike Cafarela出乎意料地在 Hadoop的问题跟踪系统中上传了一个包含30多个Java文件的tar包:“我实现了一个类 BigTable架构的存储系统demo,叫做 HBase,虽然它还不完善,但是它已经做好准备让用户进行实验和检查了。”Mike与 Doug Cutting在 Nutch(一个开源搜索引擎)项目中长期共事,DougCutting在 Nutch中实现了一个类似于 Google分布式文件系统的项目来管理磁盘,因此Nutch中构建的索引存储可以不仅仅存储在一台机器中( Nutch分布式文件系统最后发展成为了HDFS)。Powerset公司的 Jim kellerman增加了测试用例并填补了其他空白,使得 HBase可以作为 Hadoop的一部分代码进行提交。 Doug Cutting在2007年4月3日完成了 HBase的第一次代码提交,代码提交到了 Hadoop工程根目录的 contrib子目录中。 HBase的第一个版本在2007年10月作为 Hadoop0.150的一部分发布了。没过多久,本书作者Lars开始在# hbase irc交流频道出现。当时Lars面临大数据的问题,并且尝试用 HBase来解决这个问题。经过一番辛苦的摸索,Lars成为了 Powerset之外的HBase的第一个用户。我清楚地记得,Lars当时记录了他在 Worldlingo公司的生产集群的问题反馈清单,Lars当时在这家公司担任CTO。清单展示了他们的生产集群中 HBase的10个版本(从 Hadoop0.15.1到 HBase020),每个版本的集群都有将近40台机器。在这些年来所有为 HBase做出贡献的人中,具有史诗般意义的就是Lars,因为他写了这本书。Lars一直在为 HBase贡献文档, HBase想要被更好地使用和推广,就需要有良好的文档。每个人都同意Lars的想法,并且能够专注地投入编程工作中,因此Las在工作和欧洲旅行期间开始编写如何使用 HBase的文档和架构描述,并承担起了 HBase非官方的欧洲大使职责。Lars在其关于 HBase的博客(htp:/ ww.larsgeorage com)中记录了HBase的工作原理,并在关键阶段推动了 HBase社区的发展(一篇重要的博客文章解释了 HBase依赖Ⅰwy进行编译是个非常棒的主意)。在微软公司赞助 HBase的时期, HBase也发生了非常有趣的事情。 Powerset在2008年7月被微软收购,在此期间其员工不允许贡献代码,因为微软法务部门需要审核 HBase代码库并查看 HBase与 SQLServer的关系,直到一个月后才宣布重新贡献代码给社区(我是微软的一名员工,全职为 Apache开源项目工作)。之后 Facebook也开始使用HBase,用于存储海量的邮件信息或点击信息,后来 Yahoo部署了1000台 HBase集群用于定位微软Bing的爬虫快照同期非运行在HDFS上的MapR系统也仍处在开发中。我很清楚,社区和 HBase的发展得利于一群 HBase的核心 committer的辛苦努力。些核心开发成员,如 Todd Lipson、 Gary Helling和 Nicolas Spiegelberg,已经付出了多年的努力,没有他们我们无法走到今天这一步, HBase目前已经从一个分支代码成长为了一个独立存储项目。JonathanGray冒险将其初创的streamy.com网站基于HBase进行建设, Andrew Purtell在趋势科技组建了一只 HBase团队, Ryan Rawson得到了StumbleUpon的赞助,这是 HBase在 Powerset、微软之后获得的最主要的赞助,并且还发掘了一个非常厉害的 commiter-John-Daniel Cryans,而当时 Ryans还只是一个繁忙的学生。之后Lars不断地修复缺陷,并撰写文档。因此,Lars是撰写第一本关键的HBase书籍的最佳人选,也让所有人都可以了解 HBaseMichael Stack, HBase项目管理人序