第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 與其他數據庫的區(qū)別 11
1.3.1 NoSQL數據庫與SQL數據庫的
區(qū)別 11
1.3.2 NoSQL數據庫與NewSQL的
區(qū)別 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與關系型數據庫的區(qū)別 15
2.1.6 HBase與NewSQL的區(qū)別 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 案例環(huán)境要求 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和區(qū)域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 案例環(huán)境要求 46
3.4.4 任務一:配置項目運行環(huán)境 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的聯系和
區(qū)別 63
4.3 案例03:MapReduce與HBase實操 64
4.3.1 案例目標 64
4.3.2 案例預備知識點 64
4.3.3 案例環(huán)境要求 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創(chuàng)建表 79
5.2.1 案例目標 79
5.2.2 案例預備知識點 79
5.2.3 案例環(huán)境要求 80
5.2.4 案例實施步驟 80
5.3 案例05:HBase存儲方式 82
5.3.1 案例目標 82
5.3.2 案例預備知識點 82
5.3.3 案例環(huán)境要求 82
5.3.4 案例實施步驟 82
5.4 案例06:HBase對表進行數據遷移 83
5.4.1 案例目標 83
5.4.2 案例預備知識點 83
5.4.3 案例環(huán)境要求 83
5.4.4 案例實施步驟 84
5.5 案例07:話單表分析 85
5.5.1 案例目標 85
5.5.2 案例預備知識點 86
5.5.3 案例環(huán)境要求 86
5.5.4 案例實施步驟 86
5.6 習題 92
第6章 HBase和Hive 94
6.1 企業(yè)級數據倉庫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 案例環(huán)境要求 106
6.2.4 任務一:HBase集成Hive的環(huán)境
配置 106
6.2.5 任務二:集成環(huán)境中使用Hive創(chuàng)建
和查詢表 107
6.2.6 任務三:測試外部表集成
HBase 108
6.3 習題 109
第7章 HBase深入剖析 111
7.1 HBase性能優(yōu)化和測試 111
7.1.1 HBase性能優(yōu)化 111
7.1.2 客戶端性能優(yōu)化 113
7.1.3 HBase性能測試 114
7.2 案例09:對HBase表的深入剖析 116
7.2.1 案例目標 116
7.2.2 案例預備知識點 116
7.2.3 案例環(huán)境要求 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 案例環(huán)境要求 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項目實戰(zhàn)——論壇日志
分析 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上執(zhí)行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