【编辑推荐】
“本书由HBase部署的专业团队编写。Jean-Marc和Kevin 了解这其中的一切知识。读这本书并向*出色的工程师学习。” ——Michael StackApacheHBase PMCHBase的提交者和成员亲自为本书作序,三位大数据专家亲自翻译。本书通过手把手的指导和对真实环境中案例的阐释,你将学会如何架构、设计,以及部署你自己的HBase应用程序。除了HBase原理和集群部署指南之外,本书通过对案例的深入研究,展示了大型企业如何利用HBase解决具体问题的用例。
【内容简介】
当对大量数据构建索引的时候,HBase是一个出色的工具,但是从零开始学习分布式数据库及其生态系统是一件让人望而却步的事情。通过手把手的指导和对真实环境中案例的阐释,你将学会如何架构、设计,以及部署你自己的HBase应用程序。除了HBase原理和集群部署指南之外,本书通过对案例的深入研究,展示了大型企业如何利用HBase解决具体问题的用例。本书提供了基本的解决方案和代码示例来帮助你实现自己的用例,包括主数据管理(MDM)和文件系统,以及准实时事件处理。你也能学习使用故障排除的方法来帮你避免部署时出现的一些问题。学习HBase能用来做什么,其生态系统包括哪些组件以及如何搭建你的环境。探索现实世界中HBase实例如何部署并投入生产环境。查验用于追踪监控索赔的记录用例,并诊断数据管理以及产品质量。理解HBase如何和Spark、kafka、MapReduce,以及Java API一起使用。学习如何识别*常见的HBase问题,并理解其结果。
【作者简介】
Jean-Marc Spaggiari,自2012年来是HBase的contributor,作为Cloudera 的HBase精通解决方案架构师,他一直从事着Hadoop和HBase的技术支持和咨询工作。他曾经与北美洲一些*的HBase用户一起工作。Kevin O'Dell,自2012年来是HBase的contributor,作为Rocana的现场工程师,他和客户一起设计并完成大规模的IT运营。此外,他还在HBaseCon、HadoopSummit及一些Hadoop用户组做过分享。
【媒体评论】
专家推荐“本书由HBase部署的专业团队编写。Jean-Marc和Kevin 了解这其中的一切知识。读这本书并向*出色的工程师学习。”——Michael StackApacheHBase PMC
【目录】
序 1
前言 3
*部分 HBase概述
第1章什么是HBase 11
面向列与面向行 13
实现和使用示例 13
第2章 HBase原理 15
表格式列族 15
表的内部操作 22
依赖 27
HBase 角色 27
第3章 HBase生态系统 32
监控工具 32
SQL 40
框架 42
第4章 HBase规模预估和调优概述 45
硬件 46
存储 46
网络 47
操作系统调优 48
Hadoop调优 49
HBase调优 50
负载不均调优 52
第5章环境设置 54
系统要求 55
HBase单机安装 58
虚拟机中的HBase 61
本地与VM 62
故障排除 63
*步 65
伪分布式模式和全分布式模式 73
第二部分 用例
第6章用例:HBase作为一个记录系统 77
摄取/预处理 78
处理/服务 79
用户体验 84
第7章底层存储引擎的实现 87
表设计 87
数据转换 92
HFile校验 98
批量加载 99
数据索引 104
数据检索 107
更进一步 109
第8章用例:近实时事件处理 111
摄取/预处理 114
近实时事件处理 115
处理/服务 116
第9章近实时实现事件处理 119
应用流 121
实施 125
进一步 144
第10章用例:HBase作为主数据管理工具 145
摄取 146
处理 148
第11章主数据管理工具HBase的实现 150
MapReduce与Spark 150
Spark与HBase交互 151
Spark结合HBase实现 152
进一步 162
第12章用例:文档存储 163
数据服务 165
数据摄取 166
清理 168
第13章文档存储的实现 169
MOB 169
数据一致性 174
进一步 175
第三部分疑难问题的定位和排错
第14章 region 过多 179
后果 179
原因 180
解决方案 181
防范 188
第15章列族过多 191
后果 192
原因、解决方案和预防 193
第16章热点 196
后果 196
原因 196
防范和解决方案 200
第17章超时和垃圾回收 201
后果 201
原因 203
解决方案 205
预防 205
第18章 HBCK和不一致 210
HBase文件系统布局 210
查看META 表 211
在HDFS上查看HBase 212
HBCK概述 214
使用HBCK 215
【前言】
【免费在线读】
序在我25年软件从业生涯里,经历了许多颠覆性的变化:互联网、万维网、大型机、 C/S架构模型等。我曾经在一个保障炼油厂安全的软件研发团队工作。我们40人的团队共享*的一台DEC VAX机器,而且性能也远不及我现在使用的手机。我还记得20世纪90年代初的一天,我们被安排接收新的机器。要更换的机器位于三楼,是一个很大很重的像洗衣机大小的庞然大物。我们一群人在“机房”里等着,想看看他们是怎么把新机器搬上楼梯的。我们可以想象一下一个巨大的起重机,外面的街道被封锁的场景……总之,这是一个浩大的工程!但实际上出乎意料。一个男的提着一个小箱子走进房间。他把它放在那台像老式 “洗衣机”的机器的顶部,换了几根电缆,做了一些测试,便离开了。这样,就完成了!这是技术产业带来的喜悦:如果我们愿意学习新事物,并与之同行,我们将永远不会感到厌倦,不断地遇见惊喜。几年前似乎不可能的事情突然会变得司空见惯。大数据就是这样在变化,大数据无处不在。由谷歌公司的Google File System和BigTable引发的技术变革几乎影响了所有的高科技公司、银行和政府。无论是好是坏,这些系统直接或间接地触及了地球上几乎每个人的生活。和它之前的BigTable一样,Apache HBase已经在大数据生态系统中处于独特的地位:它在一个不变的分布式文件系统中支持了一种可更新的、无限扩展的数据集存储。因此,它构建了纯文件存储和OLTP / OLAP数据库之间的桥梁。HBase无处不在:Facebook、苹果、Salesforce.com、Adobe、雅虎、Bloomberg、华为、Gap和许多其他公司都在使用它。谷歌采用了HBase API为其提供公共云Bigtable,这也是HBase受欢迎的一个证据。尽管HBase无处不在,但它也不是即插即用。分布式系统很难,诸如分区容忍性、一致性和可用性等在每个讨论区都变成了大家热议的话题,不久之后更深奥的术语如热点(hotspotting)和数据加盐(salting)存储也出现了。成百上千台机器的水平扩展都需要经历痛苦的数据平衡过程,这些平衡使得我们更加难以有效地使用这些系统,HBase也不例外。在混迹于HBase和Hadoop社区的这段岁月里,我已获得了这些挑战的*手经验。必须仔细设计和构建这些用例,以发挥HBase的优势。这本书由两位内部人士撰写,他们一直在现场做支持。本书是一个非常有帮助的指南,它详细介绍了如何基于HBase架构来设计应用程序,并能够支持数千台机器的集群扩展。如果你正在构建或计划构建高扩展性及高可靠性的新应用程序,那么这本书就是为你设计的。Jean-Marc 和Kevin已经看到这一切:使用案例,人们犯的错误以及单服务器系统的设计臆想。*重要的是,他们知道哪些是运行正常的,如何解决那些运行不正常的情况,以及如何理解这里面的本质。—— Lars Hofhansl,HBase的提交者和成员项目管理委员会Apache基金会成员Salesforce.com副总裁译者序 HBase 是Hadoop Database 的简称, 基于Google Bigtable 实现的开源、分布式、可伸缩的列式存储数据库,自其诞生之日起,就受到业界的追捧, 而今已成为了Hadoop 生态圈和各公司大数据平台不可或缺的组成部分。时间序列数据库Opentsdb 、阿里的HQueue、OLAP分析引擎Kylin 等很多大数据开源项目也都是基于HBase 的。 本书是HBase 应用架构的手册指南,它涵盖了HBase 实践应用的各个方面,从HBase 底层的基本原理到整个生态系统,从*初的应用实例到性能优化,以及后续的疑难问题的定位与排错等方面。同时,作者也列举了大量的实例场景及实现代码,读者都可直接从中获取实际应用原型。 本书主要由陈敏敏(苏宁云商大数据中心总监)、夏锐(奇虎360 技术专家)、陈其生(唯品会技术专家)翻译,由于译者水平所限,翻译难免有疏漏之处,愿广大读者给予批评指正。 译者