作品简介

HBase是Apache旗下一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。利用HBase技术可在廉价的PC服务器上搭建大规模的存储化集群,使用HBase可以对数十亿级别的大数据进行实时性的高性能读写,在满足高性能的同时还保证了数据存取的原子性。

本书共分为9章,由浅入深地讲解HBase概念、安装、配置、部署,让读者对HBase先有一个感性认识,再从应用角度介绍了高级用法、监控和性能调优。既兼顾了初学者,也适用于想要深入学习HBase的读者。

本书适合于以前没有接触过HBase,或者了解HBase,并希望能够深入掌握的读者,适合HBase应用开发人员和系统管理人员学习使用。

杨曦,就职于硅谷某上市公司,对大数据、云计算等技术有较深研究以及项目实践经验。热衷创业、编写开源项目、撰写技术博客。

作品目录

  • 内容简介
  • 前言
  • 如何才能不睡着地看本书
  • 如何才能不睡着地看所有书
  • 这本书不是HBase知识大全
  • 技术支持与致谢
  • 第1章 ◄ 初识HBase ►
  • 1.1 海量数据与NoSQL
  • 1.1.1 关系型数据库的极限
  • 1.1.2 CAP理论
  • 1.1.3 NoSQL
  • 1.2 HBase是怎么来的
  • 1.3 为什么要用HBase
  • 1.4 你必须懂的基本概念
  • 1.4.1 部署架构
  • 1.4.2 存储架构
  • 1.4.3 跟关系型数据库的对比
  • 第2章 ◄ 让HBase跑起来 ►
  • 2.1 本书测试环境
  • 2.2 配置服务器名
  • 2.3 配置SSH免密登录
  • 2.4 安装Hadoop
  • 2.4.1 安装Hadoop单机模式
  • 2.4.2 安装Hadoop集群模式
  • 2.4.3 ZooKeeper
  • 2.4.4 配置Hadoop HA
  • 2.4.5 让Hadoop可以开机自启动
  • 2.4.6 最终配置文件
  • 2.5 安装HBase
  • 2.5.1 单机模式
  • 2.5.2 伪分布式模式
  • 2.5.3 关于ZooKeeper不得不说的事
  • 2.5.4 完全分布式模式
  • 2.5.5 HBase Web控制台(UI)
  • 2.5.6 让HBase可以开机自启动
  • 2.5.7 启用数据块编码(可选)
  • 2.5.8 启用压缩器(可选)
  • 2.5.9 数据块编码还是压缩器(可选)
  • 第3章 ◄ HBase基本操作 ►
  • 3.1 hbase shell的使用
  • 3.1.1 用create命令建表
  • 3.1.2 用list命令来查看库中有哪些表
  • 3.1.3 用describe命令来查看表属性
  • 3.1.4 用put命令来插入数据
  • 3.1.5 用scan来查看表数据
  • 3.1.6 用get来获取单元格数据
  • 3.1.7 用delete来删除数据
  • 3.1.8 用deleteall删除整行记录
  • 3.1.9 用disable来停用表
  • 3.1.10 用drop来删除表
  • 3.1.11 shell命令列表
  • 3.2 使用Hue来查看HBase数据
  • 3.2.1 准备工作
  • 3.2.2 安装Hue
  • 3.2.3 配置Hue
  • 3.2.4 使用Hue来查看HBase
  • 第4章 ◄ 客户端API入门 ►
  • 4.1 10分钟教程
  • 4.2 30分钟教程
  • 4.3 CRUD一个也不能少
  • 4.3.1 HTable类和Table接口
  • 4.3.2 put方法
  • 4.3.3 append方法
  • 4.3.4 increment方法
  • 4.3.5 get方法
  • 4.3.6 exists方法
  • 4.3.7 delete方法
  • 4.3.8 mutation方法
  • 4.4 批量操作
  • 4.4.1 批量put操作
  • 4.4.2 批量get操作
  • 4.4.3 批量delete操作
  • 4.5 BufferedMutator(可选)
  • 4.6 Scan扫描
  • 4.6.1 用法
  • 4.6.2 缓存
  • 4.7 HBase支持什么数据格式
  • 4.8 总结
  • 第5章 ◄ HBase内部探险 ►
  • 5.1 数据模型
  • 5.2 HBase是怎么存储数据的
  • 5.2.1 宏观架构
  • 5.2.2 预写日志
  • 5.2.3 MemStore
  • 5.2.4 HFile
  • 5.2.5 KeyValue类
  • 5.2.6 增删查改的真正面目
  • 5.2.7 数据单元层次图
  • 5.3 一个KeyValue的历险
  • 5.3.1 写入
  • 5.3.2 读出
  • 5.4 Region的定位
  • 第6章 ◄ 客户端API的高阶用法 ►
  • 6.1 过滤器
  • 6.1.1 过滤器快速入门
  • 6.1.2 比较运算快速入门
  • 6.1.3 分页过滤器
  • 6.1.4 过滤器列表
  • 6.1.5 行键过滤器
  • 6.1.6 列过滤器
  • 6.1.7 单元格过滤器
  • 6.1.8 装饰过滤器
  • 6.1.9 自定义过滤器
  • 6.1.10 如何在hbase shell中使用过滤器
  • 6.2 协处理器
  • 6.2.1 协处理器家族
  • 6.2.2 快速入门
  • 6.2.3 如何加载
  • 6.2.4 协处理器核心类
  • 6.2.5 观察者
  • 6.2.6 终端程序
  • 第7章 ◄ 客户端API的管理功能 ►
  • 7.1 列族管理
  • 7.2 表管理
  • 7.3 Region管理
  • 7.4 快照管理
  • 7.5 维护工具管理
  • 7.5.1 均衡器
  • 7.5.2 规整器
  • 7.5.3 目录管理器
  • 7.6 集群状态以及负载(ClusterStatus & ServerLoad)
  • 7.7 Admin的其他方法
  • 7.8 可见性标签管理
  • 7.8.1 快速入门
  • 7.8.2 可用标签
  • 7.8.3 用户标签
  • 7.8.4 单元格标签
  • 第8章 ◄ 再快一点 ►
  • 8.1 Master和RegionServer的JVM调优
  • 8.1.1 先调大堆内存
  • 8.1.2 可怕的Full GC
  • 8.1.3 Memstore的专属JVM策略MSLAB
  • 8.2 Region的拆分
  • 8.2.1 Region的自动拆分
  • 8.2.2 Region的预拆分
  • 8.2.3 Region的强制拆分
  • 8.2.4 推荐方案
  • 8.2.5 总结
  • 8.3 Region的合并
  • 8.3.1 通过Merge类合并Region
  • 8.3.2 热合并
  • 8.4 WAL的优化
  • 8.5 BlockCache的优化
  • 8.5.1 LRUBlock Cache
  • 8.5.2 SlabCache
  • 8.5.3 Bucket Cache
  • 8.5.4 组合模式
  • 8.5.5 总结
  • 8.6 Memstore的优化
  • 8.6.1 读写中的Memstore
  • 8.6.2 Memstore的刷写
  • 8.6.3 总结
  • 8.7 HFile的合并
  • 8.7.1 合并的策略
  • 8.7.2 compaction的吞吐量限制参数
  • 8.7.3 合并的时候HBase做了什么
  • 8.7.4 Major Compaction
  • 8.7.5 总结
  • 8.8 诊断手册
  • 8.8.1 阻塞急救
  • 8.8.2 朱丽叶暂停
  • 8.8.3 读取性能调优
  • 8.8.4 案例分析
  • 第9章 ◄ 当HBase遇上MapReduce ►
  • 9.1 为什么要用MapReduce
  • 9.2 快速入门
  • 9.3 慢速入门:编写自己的MapReduce
  • 9.3.1 准备数据
  • 9.3.2 新建项目
  • 9.3.3 建立MapReduce类
  • 9.3.4 建立驱动类
  • 9.3.5 打包、部署、运行
  • 9.4 相关类介绍
  • 9.4.1 TableMapper
  • 9.4.2 TableReducer
  • 9.4.3 TableMapReduceUtil
展开全部