第1章 基礎知識 1
1.1 Node是什麼 1
1.1.1 Node與JavaScript 1
1.1.2 Runtime 和 VM 2
第1章 初識HBase 1
1.1 海量數據與NoSQL 1
1.1.1 關係型數據庫的極限 1
1.1.2 CAP理論 1
1.1.3 NoSQL 2
1.2 HBase是怎麼來的 3
1.3 為什麼要用HBase 3
1.4 你必須懂的基本概念 4
1.4.1 部署架構 4
1.4.2 存儲架構 7
1.4.3 跟關係型數據庫的對比 9
第2章 讓HBase跑起來 11
2.1 本書測試環境 12
2.2 配置服務器名 12
2.3 配置SSH免密登陸 13
2.4 安裝Hadoop 15
2.4.1 安裝Hadoop單機模式 15
2.4.2 安裝Hadoop集群模式 20
2.4.3 ZooKeeper 23
2.4.4 配置Hadoop HA 27
2.4.5 讓Hadoop可以開機自啓動 36
2.4.6 最終配置文件 42
2.5 安裝HBase 44
2.5.1 單機模式 46
2.5.2 僞分布式模式 48
2.5.3 關於ZooKeeper不得不說的事 53
2.5.4 完全分布式模式 54
2.5.5 HBase Web控製颱(UI) 59
2.5.6 讓HBase可以開機自啓動 60
2.5.7 啓用數據塊編碼(可選) 62
2.5.8 啓用壓縮器 67
2.5.9 數據塊編碼還是壓縮器?(可選) 71
第3章 HBase基本操作 72
3.1 HBase Shell的使用 72
3.1.1 用create命令建錶 73
3.1.2 用list命令來查看庫中有哪些錶 74
3.1.3 用describe命令來查看錶屬性 74
3.1.4 用put命令來插入數據 76
3.1.5 用scan來查看錶數據 77
3.1.6 用get來獲取單元格數據 78
3.1.7 用delete來刪除數據 78
3.1.8 deleteall來刪除整行記錄 80
3.1.9 用disable來停用錶 81
3.1.10 用drop來刪除錶 81
3.1.11 Shell命令列錶 82
3.2 使用Hue來查看HBase數據 123
3.2.1 準備工作 123
3.2.2 安裝Hue 126
3.2.3 配置Hue 129
3.2.4 使用Hue來查看HBase 134
第4章 客戶端API入門 136
4.1. 10分鍾教程 136
4.2 30分鍾教程 143
4.3 CRUD一個也不能少 149
4.3.1 HTable類和Table接口 149
4.3.2 put方法 150
4.3.3 append方法 157
4.3.4 increment方法 159
4.3.5 get方法 160
4.3.6 exists 方法 164
4.3.7 delete方法 164
4.3.8 mutation方法 166
4.4 批量操作 168
4.4.1 批量put操作 169
4.4.2 批量get操作 169
4.4.3 批量delete操作 170
4.5 BufferedMutator(可選) 170
4.6 Scan掃描 172
4.6.1 用法 172
4.6.2 緩存 175
4.7 HBase支持什麼數據格式? 176
4.8 總結 177
第5章 HBase內部探險 178
5.1 數據模型 178
5.2 HBase是怎麼存儲數據的 180
5.2.1 宏觀架構 180
5.2.2 預寫日誌 WAL 183
5.2.3 MemStore 186
5.2.4 HFile( StoreFile) 186
5.2.5 KeyValue類 188
5.2.6 增刪查改的真正麵目 188
5.2.7 數據單元層次圖 189
5.3 一個KeyValue的曆險 190
5.3.1 寫入 190
5.3.2 讀齣 191
5.4 Region的定位 192
第6章 客戶端API的高階用法 195
6.1 過濾器 195
6.1.1 過濾器快速入門 196
6.1.2 比較運算快速入門 201
6.1.3 分頁過濾器(PageFilter) 204
6.1.4 過濾器列錶(FilterList) 206
6.1.5 行鍵過濾器 211
6.1.6 列過濾器 216
6.1.7 單元格過濾器 230
6.1.8 裝飾過濾器(decorating filter) 232
6.1.9 自定義過濾器 235
6.1.10 如何在hbase shell中使用過濾器 252
6.2 協處理器(coprocessor) 252
6.2.1 協處理器傢族 253
6.2.2 快速入門 255
6.2.3 如何加載 258
6.2.4 協處理器核心類 260
6.2.5 觀察者(Observers) 262
6.2.6 終端程序(EndPoint) 279
第7章 客戶端API的管理功能 293
7.1 列族管理 293
7.2 錶管理 299
7.3 Region管理 302
7.4 快照(snapshot)管理 307
7.5 維護工具管理 311
7.5.1 均衡器(Balancer) 311
7.5.2 規整器(Normalizer) 312
7.5.3 目錄管理器(catalog janitor) 313
7.6 集群狀態以及負載(ClusterStatus & ServerLoad) 314
7.7 Admin的其他方法 318
7.8 可見性標簽管理 322
7.8.1 快速入門 324
7.8.2 係統標簽 331
7.8.3 用戶標簽 332
7.8.4 單元格標簽 332
第8章 再快一點! 334
8.1 Master和RegionServer的JVM調優 334
8.1.1 先調大堆內存 334
8.1.2 可怕的Full GC 336
8.1.3 Memstore的專屬JVM策略MSLAB 338
8.2 Region的拆分 343
8.2.1 Region的自動拆分 344
8.2.2 Region的預拆分(pre-splitting) 348
8.2.3 Region的強製拆分(forced splits) 349
8.2.4 推薦方案 350
8.2.5 總結 350
8.3 Region的閤並(merge) 350
8.3.1 通過Merge類閤並(merge)Region 351
8.3.2 熱閤並(online_merge) 351
8.4 WAL的優化 352
8.5 BlockCache的優化 354
8.5.1 LRUBlockCache 355
8.5.2 SlabCache 356
8.5.3 BucketCache 357
8.5.4 組閤模式(CombinedBlockCache) 359
8.5.5 總結 360
8.6 Memstore的優化 360
8.6.1 讀寫中的Memstore 360
8.6.2 Memstore的刷寫(flush) 361
8.6.3 總結 363
8.7 HFile(StoreFile)的閤並(Compaction) 364
8.7.1 閤並的策略 364
8.7.2 Compaction的吞吐量限製參數 377
8.7.3 閤並的時候HBase做瞭什麼? 380
8.7.4 Major Compaction 381
8.7.5 總結 383
8.8 診斷手冊 383
8.8.1 阻塞急救 383
8.8.2 硃麗葉暫停(Juliet Pause) 384
8.8.3 讀取性能調優 387
8.8.4 案例分析 388
第9章 當HBase遇上MapReduce 392
9.1 為什麼要用MapReduce 392
9.2 快速入門 392
9.3 慢速入門:編寫自己的MapReduce 394
9.3.1 準備數據 394
9.3.2 新建項目 395
9.3.3 建立MapReduce類 396
9.3.4 建立驅動類 399
9.3.5 打包、部署、運行 403
9.4 相關類介紹 405
9.4.1 TableMapper 405
9.4.2 TableReducer 406
9.4.3 TableMapReduceUtil 406
· · · · · · (
收起)