內容介紹
《HBase實戰》是一本基於經驗提煉而成的指南,它教給讀者如何運用HBase設計、搭建及運行大數據套用系統。全書共分為4個部分。前兩個部分分別介紹了分散式系統和大規模數據處理的發展歷史,講解HBase的基本原理模式設計以及如何使用HBase的高級特性;第三部分通過真實的套用和代碼示例以及支持這些實踐技巧的理論知識,進一步探索HBase的一些實用技術;第四部分講解如何把原型開發系統升級為羽翼豐滿的生產系統。《HBase實戰》適合所有對雲計算、大數據處理技術和NoSQL資料庫感興趣的技術人員閱讀,尤其適合對Hadoop及HBase感興趣的技術人員參考。閱讀《HBase實戰》不要求之前具備HBase、Hadoop或者MapReduce方面的知識。
作者介紹
1. 本書兩位作者Nick Dimiduk和Amandeep Khurana都是長期的HBase實踐者,非常有真材實料。2. 本書譯者謝磊是ChinaHadoop技術社區發起人,資深IT人士,從事軟體行業十多年,現在從事企業級大數據解決方案的工作,致力於大數據技術的普及和推廣。
作品目錄
第一部分 HBase基礎第1章 HBase介紹
1.1 數據管理系統:速成
1.1.1 你好,大數據
1.1.2 數據創新
1.1.3 HBase的崛起
1.2 HBase使用場景和成功案例
1.2.1 典型網際網路搜尋問題:BigTable發明的原因
1.2.2 抓取增量數據
1.2.3 內容服務
1.2.4 信息交換
1.3 你好HBase
1.3.1 快速安裝
1.3.2 HBase Shell命令行互動
1.3.3 存儲數據
1.4 小結
第2章 入門
2.1 從頭開始
2.1.1 創建表
2.1.2 檢查表模式
2.1.3 建立連線
2.1.4 連線管理
2.2 數據操作
2.2.1 存儲數據
2.2.2 修改數據
2.2.3 工作機制:HBase寫路徑
2.2.4 讀數據
2.2.5 工作機制:HBase讀路徑
2.2.6 刪除數據
2.2.7 合併:HBase的後台工作
2.2.8 有時間版本的數據
2.2.9 數據模型概括
2.3 數據坐標
2.4 小結
2.5 數據模型
2.5.1 邏輯模型:有序映射的映射集合
2.5.2 物理模型:面向列族
2.6 表掃描
2.6.1 設計用於掃描的表
2.6.2 執行掃描
2.6.3 掃描器快取
2.6.4 使用過濾器
2.7 原子操作
2.8 ACID語義
2.9 小結
第3章 分散式的HBase、HDFS和MapReduce
3.1 一個MapReduce的例子
3.1.1 延遲與吞吐量
3.1.2 串列計算吞吐量有限
3.1.3 並行計算提高吞吐量
3.1.4 MapReduce:用布式計算最大化吞吐量
3.2 Hadoop MapReduce概覽
3.2.1 MapReduce數據流介紹
3.2.2 MapReduce內部機制
3.3 分散式模式的HBase
3.3.1 切分和分配大表
3.3.2 如何找到region
3.3.3 如何找到-ROOT-表
3.4 HBase和MapReduce
3.4.1 使用HBase作為數據源
3.4.2 使用HBase接收數據
3.4.3 使用HBase共享資源
3.5 信息匯總
3.5.1 編寫MapReduce套用
3.5.2 運行MapReduce套用
3.6 大規模條件下的可用性和可靠性
3.6.1 HDFS作為底層存儲
3.7 小結
第二部分 高級概念
第4章 HBase表設計
4.1 如何開始模式設計
4.1.1 問題建模
4.1.2 需求定義:提前多做準備工作總是有好處的
4.1.3 均衡分布數據和負載的建模方法
4.1.4 目標數據訪問
4.2 反規範化是HBase世界裡的詞語
4.3 相同表里的混雜數據
4.4 行鍵設計策略
4.5 IO考慮
4.5.1 為寫最佳化
4.5.2 為讀最佳化
4.5.3 基數和行鍵結構
4.6 從關係型到非關係型
4.6.1 一些基本概念
4.6.2 嵌套實體
4.6.3 沒有映射到的一些東西
4.7 列族高級配置
4.7.1 可配置的數據塊大小
4.7.2 數據塊快取
4.7.3 激進快取
4.7.4 布隆過濾器
4.7.5 生存時間(TTL)
4.7.6 壓縮
4.7.7 單元時間版本
4.8 過濾數據
4.8.1 實現一個過濾器
4.8.2 預裝過濾器
4.9 小結
第5章 使用協處理器擴展HBase
5.1 兩種協處理器
5.1.1 Observer協處理器
5.1.2 endpoint協處理器
5.2 實現一個observer
5.2.1 修改模式
5.2.2 從HBase開始
5.2.3 安裝observer
5.2.4 其他安裝選項
5.3 實現一個endpoint
5.3.1 為endpoint定義接口
5.3.2 實現endpoint伺服器
5.3.3 實現endpoint客戶端
5.3.4 部署endpoint伺服器
5.3.5 試運行
5.4 小結
第6章 其他的HBase客戶端選擇
6.1 在UNIX里使用HBase Shell腳本
6.1.1 準備HBase Shell
6.1.2 使用UNIX Shell腳本創建表模式
6.2 使用JRuby進行HBase Shell編程
6.2.1 準備HBase Shell
6.2.2 訪問TwitBase的users表
6.3 通過REST訪問HBase
6.3.1 啟動HBase REST服務
6.3.2 訪問TwitBase的users表
6.4 通過Python使用HBase Thrift網關
6.4.1 生成Python語言的HBase Thrift客戶端庫
6.4.2 啟動HBase Thrift服務
6.4.3 掃描TwitBaseuser表
6.5 asynchbase:另外一種HBase Java客戶端
6.5.1 創建一個asynchbase項目
6.5.2 改變TwitBase的密碼策略
6.5.3 試運行
6.6 小結
第三部分 套用系統實例
第7章 通過實例學習HBase:OpenTSDB
7.1 OpenTSDB概述
7.1.1 挑戰:基礎設施監控
7.1.2 數據:時間序列
7.1.3 存儲:HBase
7.2 設計一個HBase套用系統
7.2.1 模式設計
7.2.2 套用架構
7.3 實現一個HBase套用系統
7.3.1 存儲數據
7.3.2 查詢數據
7.4 小結
第8章 在HBase上查詢地理信息系統
8.1 運用地理數據
8.2 設計一個空間索引
8.2.1 從複合行鍵開始
8.2.2 介紹geohash
8.2.3 理解geohash
8.2.4 在有空間感知特性的行鍵里使用geohash
8.3 實現最近鄰居查詢
8.4 把計算工作推往伺服器端
8.4.1 基於查詢多邊形創建一次geohash掃描
8.4.2 區域內查詢第一幕:客戶端
8.4.3 區域內查詢第二幕:WithinFilter
8.5 小結
第四部分 讓HBase運轉起來
第9章 部署HBase
9.1 規劃集群
9.1.1 原型集群
9.1.2 小型生產集群(10~20台伺服器)
9.1.3 中型生產集群(50台以下伺服器)
9.1.4 大型生產集群(超過50台伺服器)
9.1.5 Hadoop Master節點
9.1.6 HBase Master
9.1.7 Hadoop DataNode和HBase RegionServer
9.1.8 ZooKeeper
9.1.9 採用雲服務怎么樣?
9.2 部署軟體
9.2.1 Whirr:在雲端部署
9.3 發行版本
9.3.1 使用原生Apache發行版本
9.3.2 使用Cloudera的CDH發行版本
9.4 配置
9.4.1 HBase配置
9.4.2 與HBase有關的Hadoop配置參數
9.4.3 作業系統配置
9.5 管理守護進程
9.6 小結
第10章 運維
10.1 監控你的集群
10.1.1 HBase如何輸出監控指標
10.1.2 收集監控指標和圖形展示
10.1.3 HBase輸出的監控指標
10.1.4 套用端監控
10.2 HBase集群的性能
10.2.1 性能測試
10.2.2 什麼影響了HBase的性能
10.2.3 最佳化支撐系統
10.2.4 最佳化HBase
10.3 集群管理
10.3.1 啟動和停止HBase
10.3.2 優雅停止和讓節點退役
10.3.3 增加節點
10.3.4 滾動重啟和升級
10.3.5 bin/hbase和HbaseShell
10.3.6 維護一致性——hbck
10.3.7 查看HFile和HLog
10.3.8 預先拆分表
10.4 備份和複製
10.4.1 集群間複製
10.4.2 使用MapReduce作業進行備份
10.4.3 備份根目錄
10.5 小結
附錄A 探索HBase系統
附錄B 更多關於HDFS的工作原理