第1章 NoSQL数据库 1
1.1 分布式存储系统 1
1.1.1 分布式文件系统 1
1.1.2 GFS 2
1.1.3 BigTable介绍 3
1.2 NoSQL数据库 5
1.2.1 NoSQL概述 5
1.2.2 NoSQL相关的基本概念 7
1.2.3 NoSQL分类 9
1.2.4 为什么选择HBase 10
1.3 与其他数据库的区别 11
1.3.1 NoSQL数据库与SQL数据库的
区别 11
1.3.2 NoSQL数据库与NewSQL的
区别 12
1.4 习题 12
第2章 HBase体系架构 14
2.1 HBase的基本概念 14
2.1.1 HBase的基础概述 14
2.1.2 技术架构 14
2.1.3 系统架构 15
2.1.4 HBase读取过程 15
2.1.5 HBase与关系型数据库的区别 15
2.1.6 HBase与NewSQL的区别 16
2.1.7 HBase的应用场景 16
2.2 HBase的各个组件 17
2.2.1 HMaster 17
2.2.2 HBase Client 17
2.2.3 ZooKeeper 17
2.2.4 HRegionServer 17
2.2.5 存储单元Cell与数据写入流程 19
2.3 案例01:HBase安装部署与存储 20
2.3.1 案例背景 20
2.3.2 案例预备知识点 20
2.3.3 案例环境要求 20
2.3.4 任务一:安装和配置HBase 20
2.3.5 任务二:使用HBase操作用户
数据 25
2.3.6 任务三:使用HBase进行数据检索与数据存储 31
2.4 习题 35
第3章 HBase的接口 36
3.1 HBase接口的介绍 36
3.1.1 支持HBase API操作的相关组件 36
3.1.2 表Table和区域Region 37
3.1.3 Client 37
3.1.4 ZooKeeper 38
3.1.5 HMaster 38
3.2 HBase的API概述 39
3.3 HBase的常用Java API 40
3.4 案例02:HBase中Java API的使用 46
3.4.1 案例背景 46
3.4.2 案例预备知识点 46
3.4.3 案例环境要求 46
3.4.4 任务一:配置项目运行环境 46
3.4.5 任务二:数据添加 50
3.4.6 任务三:数据获取 51
3.4.7 任务四:数据删除 54
3.4.8 任务五:查询数据 56
3.5 习题 58
第4章 MapReduce与HBase 59
4.1 MapReduce介绍 59
4.1.1 什么是MapReduce 59
4.1.2 MapReduce的原理 60
4.1.3 MapReduce的特点 63
4.1.4 MapReduce应用场景 63
4.2 MapReduce和HBase的关系 63
4.2.1 MapReduce在HBase中的作用 63
4.2.2 HBase和MapReduce的联系和
区别 63
4.3 案例03:MapReduce与HBase实操 64
4.3.1 案例目标 64
4.3.2 案例预备知识点 64
4.3.3 案例环境要求 64
4.3.4 任务一:HBase架构深入剖析 64
4.3.5 任务二:HBase集成MapReduce 67
4.3.6 任务三:编写MapReduce集成HBase对表数据的操作 71
4.4 习题 75
第5章 HBase表设计 76
5.1 HBase表的设计 76
5.1.1 HBase表概述 76
5.1.2 HBase表详细设计 78
5.2 案例04:HBase创建表 79
5.2.1 案例目标 79
5.2.2 案例预备知识点 79
5.2.3 案例环境要求 80
5.2.4 案例实施步骤 80
5.3 案例05:HBase存储方式 82
5.3.1 案例目标 82
5.3.2 案例预备知识点 82
5.3.3 案例环境要求 82
5.3.4 案例实施步骤 82
5.4 案例06:HBase对表进行数据迁移 83
5.4.1 案例目标 83
5.4.2 案例预备知识点 83
5.4.3 案例环境要求 83
5.4.4 案例实施步骤 84
5.5 案例07:话单表分析 85
5.5.1 案例目标 85
5.5.2 案例预备知识点 86
5.5.3 案例环境要求 86
5.5.4 案例实施步骤 86
5.6 习题 92
第6章 HBase和Hive 94
6.1 企业级数据仓库Hive的介绍和HBase整合 94
6.1.1 Hive的历史 94
6.1.2 Hive简介 95
6.1.3 Hive技术架构 95
6.1.4 Hive编程 100
6.1.5 Hive的应用场景 102
6.1.6 Hive和HBase整合 103
6.2 案例08:HBase与Hive集成使用 105
6.2.1 案例目标 105
6.2.2 案例预备知识点 105
6.2.3 案例环境要求 106
6.2.4 任务一:HBase集成Hive的环境
配置 106
6.2.5 任务二:集成环境中使用Hive创建
和查询表 107
6.2.6 任务三:测试外部表集成
HBase 108
6.3 习题 109
第7章 HBase深入剖析 111
7.1 HBase性能优化和测试 111
7.1.1 HBase性能优化 111
7.1.2 客户端性能优化 113
7.1.3 HBase性能测试 114
7.2 案例09:对HBase表的深入剖析 116
7.2.1 案例目标 116
7.2.2 案例预备知识点 116
7.2.3 案例环境要求 116
7.2.4 任务一:HBase表属性和BlockCache配置 116
7.2.5 任务二:深入剖析HBase表的Compaction 119
7.3 案例10:HBase集群及表的管理 119
7.3.1 案例目标 119
7.3.2 案例预备知识点 119
7.3.3 案例环境要求 120
7.3.4 任务一:HBase Master的Web UI
管理 120
7.3.5 任务二:HBase的Shell管理 125
7.3.6 任务三:HBase的其他管理
操作 126
7.4 习题 128
第8章 HBase项目实战——论坛日志
分析 129
8.1 项目背景 129
8.2 项目设计目的 129
8.3 项目技术架构和组成 130
8.4 项目任务分解 130
8.4.1 任务一:在Linux中上传数据到
HDFS 130
8.4.2 任务二:使用MapReduce进行数据
清洗 132
8.4.3 任务三:在Linux上执行MR数据
清洗 135
8.4.4 任务四:使用Hive访问存放在
HDFS的数据 137
8.4.5 任务五:使用Kettle将数据存储到HBase 139
8.4.6 任务六:使用Sqoop导入Hive数据
到MySQL 142
8.4.7 任务七:使用ECharts实现可
视化 143
8.5 项目总结 149