第1章 HBase简介 1
1.1 背景 1
1.2 NoSQL与传统RDBMS 2
1.3 应用场景 3
1.3.1 Facebook用户交互数据 3
1.3.2 淘宝TLog等 3
1.3.3 小米云服务 4
1.3.4 用户行为数据存储 4
第2章 HBase安装 5
2.1 单机部署 5
2.1.1 前置条件 5
2.1.2 下载HBase 6
2.1.3 配置HBase 6
2.1.4 启动HBase 6
2.1.5 HBase初体验 7
2.2 分布式部署 8
2.2.1 环境准备 9
2.2.2 ZooKeeper安装 11
2.2.3 Hadoop安装 12
2.2.4 HBase安装 23
2.2.5 启动集群 28
2.3 集群增删节点 29
2.3.1 增加节点 29
2.3.2 删除节点 30
第3章 HBase数据模型 33
3.1 逻辑模型 33
3.2 物理模型 35
第4章 HBase shell 39
4.1 数据定义语言 39
4.1.1 创建表 39
4.1.2 查看所有表 40
4.1.3 查看建表 40
4.1.4 修改表 41
4.2 数据操纵语言 41
4.2.1 Put 41
4.2.2 Get 42
4.2.3 Scan 43
4.2.4 删除数据 45
4.3 其他常用shell 46
4.3.1 复制状态查看 46
4.3.2 分区拆分 47
4.3.3 分区主压缩 47
4.3.4 负载均衡开关 48
4.3.5 分区手动迁移 48
第5章 模式设计 49
5.1 行键设计 50
5.2 规避热点区间 52
5.3 高表与宽表 54
5.4 微信朋友圈设计 55
5.4.1 需求定义 55
5.4.2 问题建模 55
第6章 客户端API 61
6.1 Java客户端使用 61
6.2 数据定义语言 64
6.2.1 表管理 64
6.2.2 分区管理 66
6.3 数据操纵语言 68
6.3.1 Put 68
6.3.2 Get 70
6.3.3 Scan 72
6.3.4 Delete 74
6.3.5 Increment 76
6.4 过滤器 78
6.4.1 过滤器简介 78
6.4.2 过滤器使用 81
6.5 事务 94
6.5.1 原子性 95
6.5.2 隔离性 95
第7章 架构实现 101
7.1 存储 101
7.1.1 B+树 101
7.1.2 LSM树 102
7.1.3 WAL 104
7.2 数据写入读取 107
7.2.1 定位分区服务器 107
7.2.2 数据修改流程 108
7.2.3 数据查询流程 113
第8章 协处理器 115
8.1 观察者类型协处理器 115
8.2 端点类型协处理器 132
8.3 装载/卸载协处理器 136
8.3.1 静态装载/卸载 136
8.3.2 动态装载/卸载 137
第9章 HBase性能调优 141
9.1 客户端调优 141
9.1.1 设置客户端写入缓存 141
9.1.2 设置合适的扫描缓存 143
9.1.3 跳过WAL写入 143
9.1.4 设置重试次数与间隔 144
9.1.5 选用合适的过滤器 144
9.2 服务端调优 145
9.2.1 建表DDL优化 145
9.2.2 禁止分区自动拆分与压缩 150
9.2.3 开启机柜感知 151
9.2.4 开启Short Circuit Local Reads 153
9.2.5 开启补偿重试读 154
9.2.6 JVM内存调优 155
第10章 集群间数据复制 163
10.1 复制 164
10.1.1 集群拓扑 165
10.1.2 配置集群复制 166
10.1.3 验证复制数据 169
10.1.4 复制详解 171
10.2 快照 175
10.2.1 配置快照 176
10.2.2 管理快照 176
10.3 导出和导入 178
10.3.1 导出 178
10.3.2 导入 180
10.4 复制表 180
第11章 监控 183
11.1 Hadoop监控 183
11.1.1 Web监控页面 184
11.1.2 JMX监控 185
11.2 HBase监控 188
11.2.1 Web监控页面 188
11.2.2 JMX监控 190
11.2.3 API监控 192
后记 195
附录 常见问题 197