HBase權(quán)威指南(“十二五”國家重點(diǎn)圖書出版規(guī)劃項(xiàng)目)HBase Committer及HBase文檔的主要貢獻(xiàn)者Lars George力作!Apache HBase項(xiàng)目管理委員會主席Michael Stack為本書作序推薦!最權(quán)威的HBase開發(fā)指南!
定 價:89 元
- 作者:[美]Lars George 著
- 出版時間:2013/10/1
- ISBN:9787115318893
- 出 版 社:人民郵電出版社
- 中圖法分類:TP393-62
- 頁碼:476
- 紙張:膠版紙
- 版次:1
- 開本:16開
《HBase權(quán)威指南》探討了如何通過使用與HBase高度集成的Hadoop將HBase的可伸縮性變得簡單;把大型數(shù)據(jù)集分布到相對廉價的商業(yè)服務(wù)器集群中;使用本地Java客戶端,或者通過提供了REST、Avro和Thrift應(yīng)用編程接口的網(wǎng)關(guān)服務(wù)器來訪問HBase;了解HBase架構(gòu)的細(xì)節(jié),包括存儲格式、預(yù)寫日志、后臺進(jìn)程等;在HBase中集成MapReduce框架;了解如何調(diào)節(jié)集群、設(shè)計模式、拷貝表、導(dǎo)入批量數(shù)據(jù)和刪除節(jié)點(diǎn)等。 《HBase權(quán)威指南》適合使用HBase進(jìn)行數(shù)據(jù)庫開發(fā)的高級數(shù)據(jù)庫研發(fā)人員閱讀。
Apache HBase項(xiàng)目管理委員會主席Michael Stack作序推薦。作者Lars George是HBase Committer,HBase文檔的主要貢獻(xiàn)者,Cloudera公司解決方案架構(gòu)師,主要為Hadoop和HBase提供技術(shù)支持、咨詢和培訓(xùn)工作。這是一本介紹HBase內(nèi)部機(jī)制的書,是最權(quán)威的HBase開發(fā)指南。
Lars George,HBase項(xiàng)目組成員,他是cloudera的解決方案架構(gòu)師,提供了關(guān)于Hadoop和HBase的技術(shù)支持、咨詢服務(wù)和培訓(xùn)工作。他曾經(jīng)在多個不同的Hadoop用戶組會議發(fā)言,并且在如布魯塞爾的自由及開源軟件開發(fā)者歐洲會議(FOSDEM)這樣的大型會議中發(fā)言。
目 錄
第1章 簡介 1
1.1 海量數(shù)據(jù)的黎明 1
1.2 關(guān)系數(shù)據(jù)庫系統(tǒng)的問題 5
1.3 非關(guān)系型數(shù)據(jù)庫系統(tǒng)Not-Only-SQL(簡稱NoSQL) 7
1.3.1 維度 9
1.3.2 可擴(kuò)展性 12
1.3.3 數(shù)據(jù)庫的范式化和反范式化 12
1.4 結(jié)構(gòu) 15
1.4.1 背景 15
1.4.2 表、行、列和單元格 16
1.4.3 自動分區(qū) 20
1.4.4 存儲API 21
1.4.5 實(shí)現(xiàn) 22 目 錄
第1章 簡介 1
1.1 海量數(shù)據(jù)的黎明 1
1.2 關(guān)系數(shù)據(jù)庫系統(tǒng)的問題 5
1.3 非關(guān)系型數(shù)據(jù)庫系統(tǒng)Not-Only-SQL(簡稱NoSQL) 7
1.3.1 維度 9
1.3.2 可擴(kuò)展性 12
1.3.3 數(shù)據(jù)庫的范式化和反范式化 12
1.4 結(jié)構(gòu) 15
1.4.1 背景 15
1.4.2 表、行、列和單元格 16
1.4.3 自動分區(qū) 20
1.4.4 存儲API 21
1.4.5 實(shí)現(xiàn) 22
1.4.6 小結(jié) 25
1.5 HBase:Hadoop數(shù)據(jù)庫 25
1.5.1 歷史 26
1.5.2 命名 27
1.5.3 小結(jié) 27
第2章 安裝 28
2.1 快速啟動指南 28
2.2 必備條件 31
2.2.1 硬件 31
2.2.2 軟件 37
2.3 HBase使用的文件系統(tǒng) 47
2.3.1 本地模式 48
2.3.2 HDFS 49
2.3.3 S3 49
2.3.4 其他文件系統(tǒng) 50
2.4 安裝選項(xiàng) 50
2.4.1 Apache二進(jìn)制發(fā)布包 50
2.4.2 編譯源碼 52
2.5 運(yùn)行模式 53
2.5.1 單機(jī)模式 53
2.5.2 分布式模式 53
2.6 配置 57
2.6.1 hbase-site.xml與hbase-default.xml 58
2.6.2 hbase-env.sh 59
2.6.3 regionserver 59
2.6.4 log4j.properties 59
2.6.5 配置示例 59
2.6.6 客戶端配置 61
2.7 部署 61
2.7.1 基于腳本 62
2.7.2 Apache Whirr 63
2.7.3 Puppet與Chef 63
2.8 操作集群 64
2.8.1 確定安裝運(yùn)行 64
2.8.2 Web UI介紹 65
2.8.3 Shell介紹 66
2.8.4 關(guān)閉集群 66
第3章 客戶端API:基礎(chǔ)知識 68
3.1 概述 68
3.2 CRUD操作 69
3.2.1 put方法 69
3.2.2 get方法 87
3.2.3 刪除方法 97
3.3 批量處理操作 107
3.4 行鎖 110
3.5 掃描 114
3.5.1 介紹 114
3.5.2 ResultScanner類 117
3.5.3 緩存與批量處理 119
3.6 各種特性 125
3.6.1 HTable的實(shí)用方法 125
3.6.2 Bytes類 127
第4章 客戶端API:高級特性 129
4.1 過濾器 129
4.1.1 過濾器簡介 129
4.1.2 比較過濾器 132
4.1.3 專用過濾器 139
4.1.4 附加過濾器 147
4.1.5 FilterList 151
4.1.6 自定義過濾器 153
4.1.7 過濾器總結(jié) 159
4.2 計數(shù)器 160
4.2.1 計數(shù)器簡介 160
4.2.2 單計數(shù)器 163
4.2.3 多計數(shù)器 164
4.3 協(xié)處理器 166
4.3.1 協(xié)處理器簡介 167
4.3.2 Coprocessor類 168
4.3.3 協(xié)處理器加載 171
4.3.4 RegionObserver類 174
4.3.5 MasterObserver類 180
4.3.6 endpoint 184
4.4 HTablePool 190
4.5 連接管理 194
第5章 客戶端API:管理功能 197
5.1 模式定義 197
5.1.1 表 197
5.1.2 表屬性 199
5.1.3 列族 202
5.2 HBaseAdmin 207
5.2.1 基本操作 208
5.2.2 表操作 209
5.2.3 模式操作 217
5.2.4 集群管理 219
5.2.5 集群狀態(tài)信息 222
第6章 可用客戶端 230
6.1 REST、Thrift和Avro的介紹 230
6.2 交互客戶端 233
6.2.1 原生Java 233
6.2.2 REST 233
6.2.3 Thrift 240
6.2.4 Avro 244
6.2.5 其他客戶端 245
6.3 批處理客戶端 246
6.3.1 MapReduce 246
6.3.2 Hive 246
6.3.3 Pig 252
6.3.4 Cascading 256
6.4 Shell 257
6.4.1 基礎(chǔ) 257
6.4.2 命令 259
6.4.3 腳本 263
6.5 基于Web的UI 265
6.5.1 master的UI 265
6.5.2 region服務(wù)器的UI 270
6.5.3 共享頁面 272
第7章 與MapReduce集成 275
7.1 框架 275
7.1.1 MapReduce介紹 275
7.1.2 類 276
7.1.3 支撐類 279
7.1.4 MapReduce的執(zhí)行地點(diǎn) 279
7.1.5 表拆分 280
7.2 在HBase之上的MapReduce 281
7.2.1 準(zhǔn)備 281
7.2.2 數(shù)據(jù)流向 286
7.2.3 數(shù)據(jù)源 291
7.2.4 數(shù)據(jù)源與數(shù)據(jù)流向 293
7.2.5 自定義處理 296
第8章 架構(gòu) 299
8.1 數(shù)據(jù)查找和傳輸 299
8.1.1 B+樹 299
8.1.2 LSM樹 300
8.2 存儲 302
8.2.1 概覽 303
8.2.2 寫路徑 304
8.2.3 文件 305
8.2.4 HFile格式 313
8.2.5 KeyValue格式 316
8.3 WAL 316
8.3.1 概述 317
8.3.2 HLog類 318
8.3.3 HLogKey類 319
8.3.4 WALEdit類 319
8.3.5 LogSyncer類 319
8.3.6 LogRoller類 320
8.3.7 回放 321
8.3.8 持久性 324
8.4 讀路徑 325
8.5 region查找 328
8.6 region生命周期 330
8.7 ZooKeeper 330
8.8 復(fù)制 333
8.8.1 Log Edit的生命周期 334
8.8.2 內(nèi)部機(jī)制 335
第9章 高級用法 339
9.1 行鍵設(shè)計 339
9.1.1 概念 339
9.1.2 高表與寬表 341
9.1.3 部分鍵掃描 342
9.1.4 分頁 343
9.1.5 時間序列 344
9.1.6 時間順序關(guān)系 348
9.2 高級模式 350
9.3 輔助索引 350
9.4 搜索集成 354
9.5 事務(wù) 357
9.6 布隆過濾器 358
9.7 版本管理 361
9.7.1 隱式版本控制 361
9.7.2 自定義版本控制 364
第10章 集群監(jiān)控 366
10.1 介紹 366
10.2 監(jiān)控框架 367
10.2.1 上下文、記錄和監(jiān)控指標(biāo) 367
10.2.2 master監(jiān)控指標(biāo) 372
10.2.3 region服務(wù)器監(jiān)控指標(biāo) 373
10.2.4 RPC監(jiān)控指標(biāo) 375
10.2.5 JVM監(jiān)控指標(biāo) 376
10.2.6 info監(jiān)控指標(biāo) 377
10.3 Ganglia 378
10.3.1 安裝 379
10.3.2 用法 383
10.4 JMX 386
10.4.1 JConsole 388
10.4.2 JMX遠(yuǎn)程API 390
10.5 Nagios 394
第11章 性能優(yōu)化 395
11.1 垃圾回收優(yōu)化 395
11.2 本地memstore分配緩沖區(qū) 398
11.3 壓縮 399
11.3.1 可用的編解碼器 400
11.3.2 驗(yàn)證安裝 401
11.3.3 啟用壓縮 403
11.4 優(yōu)化拆分和合并 404
11.4.1 管理拆分 404
11.4.2 region熱點(diǎn) 405
11.4.3 預(yù)拆分region 406
11.5 負(fù)載均衡 407
11.6 合并region 408
11.7 客戶端API:最佳實(shí)踐 409
11.8 配置 411
11.9 負(fù)載測試 414
11.9.1 性能評價 414
11.9.2 YCSB 416
第12章 集群管理 421
12.1 運(yùn)維任務(wù) 421
12.1.1 減少節(jié)點(diǎn) 421
12.1.2 滾動重啟 423
12.1.3 新增服務(wù)器 424
12.2 數(shù)據(jù)任務(wù) 428
12.2.1 導(dǎo)入/導(dǎo)出 428
12.2.2 CopyTable工具 433
12.2.3 批量導(dǎo)入 435
12.2.4 復(fù)制 438
12.3 額外的任務(wù) 440
12.3.1 集群共存 440
12.3.2 端口要求 442
12.4 改變?nèi)罩炯墑e 442
12.5 故障處理 443
12.5.1 HBase Fsck 443
12.5.2 日志分析 445
12.5.3 常見問題 447
附錄A HBase配置屬性 451
附錄B 計劃 467
附錄C 版本升級 469
附錄D 分支 471
附錄E Hush SQL Schema 473
附錄F 對比HBase和BigTable 475