| 作者: | Nick Dimiduk and Amandeep Khurana |
| 语言: | 英文 |
| 出版年份: | 2012 |
| 下载链接: |
书籍均收集自互联网,仅供学习和研究使用,请莫用于商业用途。谢谢合作。 |
《HBase in Action》是一本面向应用开发者的 HBase 实战指南,由两位资深社区成员 Nick Dimiduk 与 Amandeep Khurana 合著,Manning 出版社 2013 年出版。全书不深究 HBase 内部实现,而是聚焦于"如何用 HBase 构建应用并推向生产"。它以贯穿全书的示例应用 TwitBase 为线索,从建表、读写数据到 schema 设计、协处理器扩展,再到部署运维,形成一条完整的实践路径。
本书围绕四个递进阶段展开:基础入门(第 1–3 章)帮助读者理解 HBase 的起源、数据模型和分布式架构;进阶概念(第 4–6 章)深入表设计、协处理器和多语言客户端;实例剖析(第 7–8 章)通过 OpenTSDB 时序存储和 GIS 空间索引两个真实案例展示 HBase 的领域建模能力;生产落地(第 9–10 章)覆盖集群规划、部署、监控、调优和备份恢复。全书强调"为查询而建模"的核心理念——HBase 的表结构必须围绕数据访问模式设计,而非照搬关系型范式。
| 章节 | 核心内容 |
|---|---|
| 第 1 章:HBase 入门 | NoSQL 运动背景、HBase 起源与 Bigtable 论文渊源、典型用例(增量数据捕获、内容服务、信息交换)、快速安装与 shell 交互 |
| 第 2 章:基础操作 | 建表与连接管理、CRUD 操作及读写路径内幕、数据模型(逻辑上的有序映射嵌套 vs 物理上的列族导向)、扫描与过滤器、原子操作与 ACID 语义 |
| 第 3 章:分布式 HBase | MapReduce 并行计算原理、HBase 分布式模式下的 Region 分裂与定位机制(-ROOT- 表与 .META. 表)、HBase 与 MapReduce 的三种集成方式、HDFS 底层存储与高可用 |
| 第 4 章:表设计 | 反规范化设计哲学、行键设计策略(写入优化 vs 读取优化、基数考量)、从关系型到非关系型的思维转换、列族高级配置(块缓存、Bloom 过滤器、TTL、压缩)、服务端过滤器实战 |
| 第 5 章:协处理器 | Observer 协处理器(类似 RDBMS 触发器)与 Endpoint 协处理器(类似存储过程)的实现与部署,将计算逻辑下沉到集群端 |
| 第 6 章:多语言客户端 | UNIX shell 脚本化、JRuby 编程、REST 网关、Thrift 网关(Python 示例)、异步 Java 客户端 asynchbase |
| 第 7 章:OpenTSDB 案例 | 时序数据存储挑战、HBase schema 设计(指标 UID 与时间分片)、数据写入与查询的完整实现 |
| 第 8 章:GIS 空间索引 | 地理空间数据建模、geohash 编码作为空间感知行键、最近邻查询与多边形范围内查询、服务端 WithinFilter 实现 |
| 第 9 章:部署 HBase | 集群规模规划(原型到大规模)、HBase Master/RegionServer/ZooKeeper 角色分配、云端部署(Whirr)、Apache 与 CDH 发行版选择、关键配置参数 |
| 第 10 章:运维管理 | 集群监控与指标采集(Ganglia/JMX)、性能测试与调优(JVM GC、压缩、MemStore)、节点上下线与滚动升级、hbck 一致性检查、跨集群复制与 MapReduce 备份 |
本书适合有一定 Java 和 UNIX 基础的应用开发者与技术架构师,要求读者熟悉 JVM 生态(Maven、JAR)和关系型数据库基本概念,但不要求事先具备 Hadoop 或 HBase 经验。对于需要将 HBase 应用推向生产的运维工程师,书中部署与运维章节也提供了实用的起点。不适合希望深入 HBase 源码或内部机制的读者——那类需求应参考 Lars George 的《HBase: The Definitive Guide》。
作为 HBase 领域最早的实战手册之一,本书的最大价值在于"经验编码"——两位作者将八年社区积累的隐性知识提炼为可操作的指导,尤其表设计章节中"为查询建模"的反直觉理念,至今仍是 HBase 应用成败的关键。协处理器和多语言客户端章节填补了官方文档的空白。局限在于出版于 2013 年,部分 API 和运维细节已随 HBase 2.x 演进发生变化,但核心设计思想与分布式架构原理仍然有效。对于需要快速上手 HBase 应用开发的读者,这是一本高效且务实的入门读物。