HBase入門與實踐
內容描述
本書以精練的語言介紹HBase的基礎知識,讓初學者能夠快速上手使用HBase,對HBase的核心思想(如數據讀取、數據備份等)和HBase架構(如LSM樹、WAL)有深入的分析,並且讓有經驗的HBase開發人員也能夠循序漸進地深入理解HBase源碼,以便更好地去調試和解決線上遇到的各種問題。本書更加專註於HBase在線實時系統的調優,使HBase集群響應延遲更低。本書結合企業必備的“用戶行為分析系統”,讓讀者能夠快速上手的同時,也不乏企業HBase實際應用場景,理論不脫離實際,真正做到從入門到精通。
本書適合有一定Java基礎的程序員作為HBase入門教程,HBase運維人員可以將本書作為參考手冊來部署和監控HBase,正在將HBase應用到在線生產環境中的軟件開發人員也可以參考本書來調優HBase在線集群性能。
目錄大綱
第1章HBase簡介1
1.1背景1
1.2 NoSQL與傳統RDBMS 2
1.3應用場景3
1.3.1 Facebook用戶交互數據3
1.3.2淘寶TLog等3
1.3.3小米雲服務4
1.3.4用戶行為數據存儲4
第2章HBase安裝5
2.1單機部署5
2.1.1前置條件5
2.1.2下載HBase 6
2.1.3配置HBase 6
2.1.4啟動HBase 6
2.1.5 HBase初體驗7
2.2分佈式部署8
2.2.1環境準備9
2.2.2 ZooKeeper安裝11
2.2.3 Hadoop安裝12
2.2.4 HBase安裝23
2.2.5啟動集群28
2.3集群增刪節點29
2.3.1增加節點29
2.3.2刪除節點30
第3章HBase數據模型33
3.1邏輯模型33
3.2物理模型35
第4章HBase shell 39
4.1數據定義語言39
4.1.1創建表39
4.1.2查看所有表40
4.1.3查看建表40
4.1.4修改表41
4.2數據操縱語言41
4.2.1 Put 41
4.2.2 Get 42
4.2.3 Scan 43
4.2.4刪除數據45
4.3其他常用shell 46
4.3.1複製狀態查看46
4.3.2分區拆分47
4.3.3分區主壓縮47
4.3.4負載均衡開關48
4.3.5分區手動遷移48
第5章模式設計49
5.1行鍵設計50
5.2規避熱點區間52
5.3高表與寬表54
5.4微信朋友圈設計55
5.4.1需求定義55
5.4.2問題建模55
第6章客戶端API 61
6.1 Java客戶端使用61
6.2數據定義語言64
6.2.1表管理64
6.2.2分區管理66
6.3數據操縱語言68
6.3.1 Put 68
6.3.2 Get 70
6.3.3 Scan 72
6.3.4 Delete 74
6.3.5 Increment 76
6.4過濾器78
6.4.1過濾器簡介78
6.4.2過濾器使用81
6.5事務94
6.5.1原子性95
6.5.2隔離性95
第7章架構實現101
7.1存儲101
7.1.1 B+樹101
7.1. 2 LSM樹102
7.1.3 WAL 104
7.2數據寫入讀取107
7.2.1定位分區服務器107
7.2.2數據修改流程108
7.2.3數據查詢流程113
第8章協處理器115
8.1觀察者類型協處理器115
8.2端點類型協處理器132
8.3裝載/卸載協處理器136
8.3.1靜態裝載/卸載136
8.3.2動態裝載/卸載137
第9章HBase性能調優141
9.1客戶端調優141
9.1.1設置客戶端寫入緩存141
9.1.2設置合適的掃描緩存143
9.1.3跳過WAL寫入143
9.1.4設置重試次數與間隔144
9.1.5選用合適的過濾器144
9.2服務端調優145
9.2.1建表DDL優化145
9.2.2禁止分區自動拆分與壓縮150
9.2.3開啟機櫃感知151
9.2.4開啟Short Circuit Local Reads 153
9.2.5開啟補償重試讀154
9.2.6 JVM內存調優155
第10章集群間數據複製163
10.1複製164
10.1.1集群拓撲165
10.1.2配置集群複製166
10.1.3驗證複製數據169
10.1.4複製詳解171
10.2快照175
10.2.1配置快照176
10.2.2管理快照176
10.3導出和導入178
10.3.1導出178
10.3.2導入180
10.4複製表180
第11章監控183
11.1 Hadoop監控183
11.1.1 Web監控頁面184
11.1.2 JMX監控185
11.2 HBase監控188
11.2.1 Web監控頁面188
11.2. 2 JMX監控190
11.2.3 API監控192
後記195
附錄常見問題197
作者介紹
彭旭,2009 年畢業於武漢大學軟件工程專業,近十年國內頂尖互聯網企業工作經驗,曾任阿里巴巴天貓技術部資深軟件工程師、珠海市魅族科技有限公司架構師,現在在創業公司珠海市卓軒科技有限公司任合夥人。精通Java 生態系統相關技術,對大數據存儲、HBase 系統調優有深刻理解,帶領團隊將雲服務存儲系統從MySQL 遷移到HBase,每年為公司節省成本數百萬元。