目录
●第1章HBase简介
1.1背景
1.2NoSQL与传统RDBMS
1.3应用场景
1.3.1Facebook用户交互
1.3.2淘宝TLog
1.3.3小米云服务
1.3.4用户行为数据存储
第2章HBase安装
2.1单机部署
2.1.1前置条件
2.1.2下载HBase
2.1.3配置HBase
2.1.4启动HBase
2.1.5HBase初体验
2.2分布式部署
2.2.1环境准备
2.2.2ZooKeeper安装
2.2.3Hadoop安装
2.2.4HBase安装
2.2.5启动集群
2.3集群增删节点
2.3.1增加节点
2.3.2删除节点
第3章HBase的数据模型
3.1逻辑模型
3.2物理模型
第4章HBaseShell
4.1数据定义语言
4.1.1创建表
4.1.2查看所有表
4.1.3查看已创建的表
4.1.4修改表
4.2数据操纵语言
4.2.1put命令
4.2.2get命令
4.2.3scan命令
4.2.4delete命令、deleteall命令和truncate命令
4.3其他常用的Shell命令
4.3.1复制状态查看
4.3.2分区拆分
4.3.3分区大合并
4.3.4负载均衡开关
4.3.5分区手动迁移
4.3.6HBase运行Ruby脚本
第5章模式设计
5.1行键设计
5.2规避热点区间
5.3高表与宽表
5.4微信朋友圈设计
5.4.1需求定义
5.4.2问题建模
第6章客户端API
6.1.1ava客户端使用
6.2数据定义语言
6.2.1表管理
6.2.2分区管理
6.3数据操纵语言
6.3.1Put操作
6.3.2Get操作
6.3.3Scan操作
6.3.4Delete操作
6.3.5Increment操作
6.4过滤器
6.4.1过滤器简介
6.4.2过滤器使用
6.5事务
6.5.1原子性
6.5.2隔离性
第7章架构实现
7.1存储
7.1.1B+树
7.1.2LSM树
7.1.3预写入日志
7.2数据写入与读取
7.2.1定位分区服务器
7.2.2数据修改流程
7.2.3数据查询流程
7.3合并策略
7.3.1StripeCompaction策略
7.3.2DateTiered(70mpaction策略
7.3.3RatioBasedCompaction策略
7.3.4ExploringCompaction策略
7.3.5FIFOCompaction策略
第8章协处理器
8.1观察者类型协处理器
8.2端点类型协处理器
8.3加载/卸载协处理器
8.3.1静态加载/卸载
8.3.2动态加载/卸载
第9章卜IBase性能调优
9.1客户端调优
9.1.1设置客户端写入缓存
9.1.2设置合适的扫描缓存
9.1.3跳过WAL写入
9.1.4设置重试次数与间隔
9.1.5选用合适的过滤器
9.2服务器端调优
9.2.1创建表语句的优化
9.2.2禁止分区自动拆分与合并
9.2.3开启机柜感知
9.2.4开启短路本地读
9.2.5开启补偿重试读
9.2.6JVM内存调优
第10章集群间数据复制
10.1复制
10.1.1集群拓扑
10.1.2配置集群复制
10.1.3验证复制数据
10.1.4复制详解
10.2快照
10.2.1配置快照
10.2.2管理快照
10.3导出和导入
10.3.1导出
10.3.2导入
10.4复制表
第11章监控
11.1Hadoop监控
11.1.1Web监控页面
11.1.2JMX监控接口
11.2HBase监控
11.2.1Web监控页面
11.2.2JMX监控接口
11.2.3客户端API监控
附录A常见问题
A.1垃圾回收超时导致分区服务器宕机
A.2Scanner租期过期
A.3分区迁移异常
A.4Windows运行HBase程序缺少winutil.exe
A.5误删表数据
A.6RIT时间过长导致不同分区行键数据有重叠
内容介绍
本书以当前稳定版HBase2.4.9为基础,将Hadoop升级到2.10.1版本,并对客户端API进行升级。本书以精练的语言介绍HBase的基础知识,让初学者能够快速上手使用HBase;深入分析HBase的核心思想(如数据读取和数据备份等)和HBase架构(如B+树、LSM树和WAL等),专注于HBase在线实时系统的调优,使HBase集群响应延迟更低,让有经验的HBase开发人员能循序渐进地理解HBase源代码,更好地调试和解决各种实际问题;本书从企业常见的“用户行为日志管理系统”着手,结合HBase的实际应用场景,让读者快速上手,真正做到从入门到实践。本书非常适合作为有一定Java基础的开发人员的HBase入门教程,也适合作为HBase运维人员部署和监控HBase的参考手册,还适合作为将HBase应用到在线生产环境中的开发人员进行HBase在线集群性能调优的技术指南。