分佈式數據庫 HBase 案例教程
陳建平 陳岸青 李金湖
相關主題
商品描述
本書定位是HBase從入門到應用的簡明教程,特色是以實戰案例為主,內容系統全面,講解深入淺出,操作步驟清晰明瞭。本書配套示例源碼、PPT課件、開發環境、教學視頻、習題及答案以及其他豐富的教學 資源。 本書共分為8章,內容包括NoSQL數據庫、HBase體系架構、HBase的接口、MapReduce與HBase、HBase表設計、HBase和Hive、HBase深入剖析、論壇日誌分析實戰。 本書既適合HBase初學者、大數據分析與挖掘初學者閱讀,也適合作為高等院校和培訓機構人工智能、大數據等相關專業師生的教學參考書。
目錄大綱
目 錄
第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