-- 會員 / 註冊 --  
 帳號:
 密碼:
  | 註冊 | 忘記密碼
3/26 新書到! 3/19 新書到! 3/14 新書到! 12/12 新書到!
購書流程Q & A站務留言版客服信箱
3ds MaxMayaRhinoAfter EffectsSketchUpZBrushPainterUnity
PhotoShopAutoCadMasterCamSolidWorksCreoUGRevitNuke
C#CC++Java遊戲程式Linux嵌入式PLCFPGAMatlab
駭客資料庫搜索引擎影像處理FluentVR+ARANSYS深度學習
單晶片AVROpenGLArduinoRaspberry Pi電路設計CadenceProtel
HadoopPythonStm32CortexLabview手機程式AndroidiPhone
可查書名,作者,ISBN,3dwoo書號
詳細書籍分類

HBase企業應用開發實戰

( 簡體 字)
作者:馬延輝 孟鑫 李立松 著類別:1. -> 程式設計 -> 綜合
譯者:
出版社:機械工業出版社HBase企業應用開發實戰 3dWoo書號: 39603
詢問書籍請說出此書號!

缺書
NT售價: 445

出版日:9/1/2014
頁數:470
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 版 )
加入購物車 加到我的最愛
(請先登入會員)
ISBN:9787111478324
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證)
作者序:

譯者序:

前言:

寫這本書

大數據是繼云計算、物聯網之后IT行業又一次顛覆性的技術革命。大數據在互聯網、軍事、金融、通信和物理學等領域已經有不少落地案例,而Hadoop技術的快速發展也引起業界廣泛關注。可以說,現在Hadoop是大數據處理的關鍵技術,也是迄今為止,最成熟、應用最廣泛的技術。

HBase原型是Google的BigTable論文,從基因上講,HBase已經是Hadoop生態系統不可或缺的一部分。HBase是完全開源的,同時存在多個版本,并且版本升級非常快,其學習成本比較高,學習周期比較長,所以現在大部分公司的工作人員很難在短時間內快速掌握并使用HBase框架。

此外,現在有關HBase的中文學習資料非常少,也給研發人員的學習帶來了很大的難度。盡管現在市面上已經有幾本關于HBase的中文書,但是,這幾本書都是翻譯作品,語言的組織不符合國人的習慣,并且實例講解部分也不能切合本土國情。還有,這幾本書分別側重了某一個方面,如理論、實戰、運維等,還沒有一本書能夠非常系統地闡述HBase框架。本書正是為了解決以上各種問題而編寫的,也是國內第一本系統講解HBase理論、實戰和運維調優的書籍。

本書以HBase 0.94為基礎,不僅深入探討了HBase的原理架構和數據模型,更重要的是通過實際案例教會讀者如何運用HBase框架來設計、搭建及運行大數據應用系統,同時結合生產案例剖析HBase系統運維和性能調優的技巧。

讀者對象

本書適合以下讀者閱讀。

(1)云計算、大數據處理技術和NoSQL數據庫愛好者

“大數據”無疑是繼“云計算”之后IT業界最熱門的詞匯。而云計算、大數據、NoSQL技術本身存在交集,現在不少研究云計算的公司或機構都開始涉獵大數據和NoSQL領域,本書講解的HBase數據庫是NoSQL的一種,同時是大數據處理的關鍵技術,本書可以幫助這部分讀者快速且全面地了解HBase的原理、架構、使用場景和細節知識點,理解HBase在云計算、大數據和NoSQL中的位置。

(2)對Hadoop及HBase感興趣的開發人員

Hadoop技術在近幾年非常熱,它已經是大數據處理的關鍵技術,而HBase作為Hadoop生態系統的重要組件,已經被越來越多的公司使用。本書詳細介紹了HBase與Hadoop的關系、HBase的基本概念、核心知識點和高級特性,并且結合實戰案例講解,使得讀者可以快速掌握HBase的使用。

(3)使用HBase進行數據庫開發或運維的高級DBA

HBase作為NoSQL數據庫的一種,被越來越多的企業應用用作底層存儲或者中間存儲。本書不但講解了HBase的原理和架構,更重要的是詳細介紹了HBase的使用方法、運維監控和系統調優方法,能夠幫助該部分讀者快速掌握大型分布式數據庫的安裝、運維和調優技巧。

(4)開源軟件愛好者

HBase作為Apache基金會的頂級優秀開源項目,其實現過程中吸收了很多開源領域的優秀思想,同時也值得我們深入研究和學習。本書在講解過程中剖析了不少HBase源代碼,可以幫助該部分讀者了解和掌握HBase框架源代碼的設計方法和技巧。

(5)開設相關課程的高等院校學生

現在越來越多的高等院校已經開設了大數據方向的學生培養課程。在這些課程中,Hadoop生態系統技術是核心課程,本書詳細介紹Hadoop生態系統重要組件——HBase,這部分讀者可以將本書作為參考教材使用。

如何閱讀本書

本書分為三大部分。

第一部分為基礎篇(第1∼5章),介紹了大數據背景、HBase基本原理、模式設計、HBase的安裝部署和所支持客戶端API及使用方法。

第二部分為實戰篇(第6∼8章),通過三個典型的應用案例和代碼示例,結合實踐技巧和理論知識,深入講解如何使用HBase設計大型數據應用系統。

第三部分為高級篇(第9∼12章),重點介紹HBase的整體架構、高級特性、運維監控和性能調優等,并結合生產系統的性能優化和運維經驗進行講解,旨在提升讀者的實際操作經驗。

最后本書列出了三個附錄供讀者參考。

附錄A為HBase框架所有配置參數的介紹。

附錄B為基于HBase的SQL引擎工具Phoenix的SQL語法詳解。

附錄C為HBase性能測試工具YCSB編譯安裝介紹。

如果你是一名已經具備一定Hadoop、HBase基礎知識和使用經驗的用戶,那么可以直接閱讀第二部分和第三部分。第二部分側重實戰,第三部分側重運維,請讀者自行選擇閱讀。但是,如果你是一名初學者,請一定從第1章的基礎理論知識開始學習。

勘誤和支持

本書第2、3章由孟鑫書寫,第4章由李立松書寫,其他章由馬延輝書寫。由于作者的水平有限,編寫時間倉促,書中難免會出現一些錯誤或者不準確的地方,懇請讀者批評指正。讀者可以將書中的錯誤發布在站點頁面http://www.adintellig.com/hbase-in-action/的留言中。同時如果你遇到任何問題,也可以訪問該頁面,我們將盡量在線上為你提供最滿意的解答。如果你有更多的寶貴意見,也歡迎發送郵件至郵箱binma85@gmail.com,期待能夠得到你們的真摯反饋。

致謝

首先要感謝Google公司,它開放了如此優秀的論文BigTable——HBase的原型。

感謝Apache基金會以及所有對開源軟件和開源社區作出貢獻的朋友。感謝一直以來幫助過我們的數盟社區和EasyHadoop社區,他們提供的平臺讓我們認識了很多圈子里的同行,交流中技術和思想的碰撞讓我們受益匪淺。

感謝?禮老師百忙之中抽出時間為本書寫推薦。

感謝對我們有過幫助的Ted Yu、葉剛、史彪、向磊、魏興寶、盧億磊、趙修湘、史東杰、廖旻可、陳書美、傅杰、費偉、孫利兵等人。

感謝機械工業出版社華章公司的編輯楊福川、姜影和白宇,在這一年多的時間中始終支持我們的寫作,他們的鼓勵和幫助引導著我們順利完成本書。

最后感謝我們的爸爸、媽媽、爺爺、奶奶,感謝他們的養育之恩,并時時刻刻為我們灌輸著信心和力量!

謹以此書獻給我們最親愛的家人,以及眾多熱愛HBase的朋友們!



馬延輝于中國北京
內容簡介:

簡介
本書強調HBase在企業的實際應用,立足于企業的實際生產環境,旨在幫助企業切實解決大數據技術如何落地的問題。三位作者都是奮戰在中國大數據技術一線的實踐派專家,本書是他們實踐經驗的結晶。
本書內容在三個維度上具有重要特色:功能維度,從HBase的安裝配置、參數設置,到數據模型、表結構設計、客戶端使用、高級特性,本書做了系統且詳盡的介紹;實戰維度,不僅通過3個典型的應用案例詳細講解了如何使用HBase設計大型的數據應用系統,而且還結合實際生產系統講解了HBase的集群運維、監控和性能調優;理論維度,則深入分析了HBase、框架設計、模式設計和基本原理。可謂是理論與實踐完美結合,深度與廣度兼備!
目錄:

前 言

第一部分 基礎篇

第1章 認識HBase 2

1.1 理解大數據背景 2

1.1.1 什么是大數據 3

1.1.2 為何大數據至關重要 4

1.1.3 NoSQL在大數據中扮演的角色 4

1.2 HBase是什么 6

1.2.1 HBase的發展歷史 6

1.2.2 HBase的發行版本 7

1.2.3 HBase的特性 9

1.3 HBase與Hadoop的關系 10

1.4 HBase的核心功能模塊 12

1.4.1 客戶端Client 12

1.4.2 協調服務組件ZooKeeper 13

1.4.3 主節點HMaster 13

1.4.4 Region節點HRegionServer 13

1.5 HBase的使用場景和經典案例 14

1.5.1 搜索引擎應用 15

1.5.2 增量數據存儲 15

1.5.3 用戶內容服務 17

1.5.4 實時消息系統構建 18

1.6 本章小結 18

第2章 HBase安裝與配置 19

2.1 先決條件 19

2.2 HBase運行模式 23

2.2.1 單機模式 23

2.2.2 分布式模式 24

2.3 HBase的Web UI 31

2.4 HBase Shell工具使用 31

2.5 停止HBase集群 33

2.6 本章小結 33

第3章 數據模型 34

3.1 兩類數據模型 34

3.1.1 邏輯模型 35

3.1.2 物理模型 35

3.2 數據模型的重要概念 36

3.2.1 表 36

3.2.2 行鍵 37

3.2.3 列族 38

3.2.4 單元格 38

3.3 數據模型的操作 38

3.3.1 讀Get 39

3.3.2 寫Put 39

3.3.3 掃描Scan 39

3.3.4 刪除Delete 40

3.4 數據模型的特殊屬性 40

3.4.1 版本 40

3.4.2 排序 42

3.4.3 列的元數據 42

3.4.4 連接查詢 43

3.4.5 計數器 43

3.4.6 原子操作 43

3.4.7 事務特性ACID 43

3.4.8 行鎖 45

3.4.9 自動分區 45

3.5 CAP原理與最終一致性 46

3.6 本章小結 47

第4章 HBase表結構設計 48

4.1 模式創建 48

4.2 Rowkey設計 49

4.3 列族定義 51

4.3.1 可配置的數據塊大小 51

4.3.2 數據塊緩存 52

4.3.3 布隆過濾器 52

4.3.4 數據壓縮 53

4.3.5 單元時間版本 53

4.3.6 生存時間 54

4.4 模式設計實例 54

4.4.1 實例1:動物分類 54

4.4.2 實例2:店鋪與商品 56

4.4.3 實例3:網上商城用戶消費記錄 57

4.4.4 實例4:微博用戶與粉絲 58

4.5 本章小結 60

第5章 HBase客戶端 61

5.1 精通原生Java客戶端 61

5.1.1 客戶端配置 62

5.1.2 創建表 69

5.1.3 刪除表 70

5.1.4 插入數據 70

5.1.5 查詢數據 72

5.1.6 刪除數據 76

5.1.7 過濾查詢 77

5.2 使用HBase Shell工具操作HBase 79

5.2.1 命令分類 79

5.2.2 常規命令 80

5.2.3 DDL命令 81

5.2.4 DML命令 82

5.2.5 工具命令Tools 86

5.2.6 復制命令 87

5.2.7 安全命令 87

5.3 使用Thrift客戶端訪問HBase 88

5.3.1 Thrift與Thrift2區別 88

5.3.2 安裝與部署Thrift2 89

5.3.3 Python使用案例 93

5.4 通過REST客戶端訪問HBase 95

5.4.1 啟動服務 95

5.4.2 使用REST訪問example表 96

5.5 使用MapReduce批量操作HBase 97

5.5.1 三種訪問模式 98

5.5.2 實現MapReduce API 98

5.5.3 HBase作為輸入源示例 99

5.5.4 HBase作為輸出源示例 101

5.5.5 HBase作為共享源示例 103

5.6 通過Web UI工具查看HBase狀態 106

5.6.1 Master狀態界面 106

5.6.2 RegionServer狀態界面 107

5.6.3 ZooKeeper統計信息頁面 109

5.7 其他客戶端 110

5.8 本章小結 110

第二部分 實戰篇

第6章 整合SQL引擎層 114

6.1 NoSQL背景知識 114

6.1.1 什么是NoSQL 114

6.1.2 將SQL整合到HBase的原因 115

6.1.3 基于HBase的SQL引擎實現 116

6.2 Hive整合HBase的實現 119

6.2.1 認識Hive 119

6.2.2 Hive整合HBase的環境準備 122

6.2.3 Linux環境下重新編譯Hive 123

6.2.4 Hive參數配置 125

6.2.5 啟動Hive 127

6.2.6 Hive與HBase整合后的框架如何使用 127

6.2.7 HBase到Hive的字段映射 133

6.2.8 多列與Hive Map類型 134

6.3 查詢引擎Phoenix 137

6.3.1 認識Phoenix 138

6.3.2 Phoenix安裝環境準備 141

6.3.3 Phoenix安裝部署 142

6.3.4 Phoenix源碼編譯 143

6.3.5 Phoenix中SQLLine的快速使用 149

6.3.6 使用JDBC訪問Phoenix 153

6.4 對象映射框架Kundera 155

6.4.1 認識Kundera 155

6.4.2 Kundera的客戶端API快速使用 158

6.4.3 Kundera模塊介紹 161

6.4.4 Kundera的REST訪問方式 162

6.5 分布式SQL引擎Lealone 165

6.5.1 認識Lealone 165

6.5.2 Lealone的安裝部署 166

6.5.3 通過JDBC訪問Lealone 168

6.5.4 通過Python訪問Lealone 169

6.5.5 Lealone特有的建表語法 170

6.6 本章小結 171

第7章 構建音樂站用戶屬性庫 173

7.1 案例背景 173

7.1.1 音樂站 173

7.1.2 需求概述 175

7.1.3 需求范圍和系統邊界 175

7.1.4 需求詳述 176

7.1.5 名詞解釋 180

7.2 概要設計 181

7.2.1 設計目標 181

7.2.2 數據規模假設 181

7.2.3 功能指標 182

7.2.4 系統流程 182

7.3 表結構設計 183

7.3.1 功能抽象 183

7.3.2 邏輯結構 184

7.3.3 Rowkey設計 188

7.3.4 列族設計 188

7.3.5 版本定義 188

7.3.6 優化屬性定義 188

7.4 數據加載 189

7.4.1 加載流程 189

7.4.2 Mapper類 190

7.4.3 Main類 192

7.4.4 運行 193

7.5 數據檢索 193

7.5.1 HBaseTable 193

7.5.2 HBaseAdmin 193

7.5.3 幾種檢索類型 195

7.6 后臺查詢 198

7.6.1 二級索引實現 198

7.6.2 后臺查詢系統 205

7.7 本章小結 206

第8章 構建廣告實時計算系統 208

8.1 理解廣告數據和流處理框架 208

8.1.1 網絡廣告的幾大特性 209

8.1.2 網絡廣告的數據類型 210

8.1.3 流處理框架 211

8.1.4 背景與需求描述 217

8.2 概要設計 218

8.2.1 設計目標 219

8.2.2 主要功能 219

8.2.3 系統架構 219

8.3 詳細設計 221

8.3.1 表結構設計 221

8.3.2 功能模塊設計 222

8.4 核心功能實現 223

8.4.1 規劃集群環境部署 223

8.4.2 安裝ZooKeeper集群 225

8.4.3 安裝Kafka分布式集群 228

8.4.4 實現Kafka生產者 231

8.4.5 安裝Storm分布式集群 233

8.4.6 查看集群節點部署情況 240

8.4.7 基于Storm-kafka中間件實現計算邏輯 240

8.4.8 如何使用HBase中統計數據 251

8.5 本章小結 252

第三部分 高級篇

第9章 核心概念 254

9.1 核心結構 254

9.1.1 B+樹 255

9.1.2 LSM樹 255

9.1.3 兩種結構本質區別 257

9.2 底層持久化 258

9.2.1 存儲基本架構 258

9.2.2 HDFS文件 259

9.2.3 Region切分 264

9.2.4 合并 265

9.2.5 HFile格式 266

9.2.6 KeyValue格式 269

9.3 預寫日志 270

9.3.1 概要流程 270

9.3.2 相關Java類 271

9.3.3 日志回放 274

9.3.4 日志一致性 275

9.4 寫入流程 276

9.4.1 客戶端 276

9.4.2 服務器端 281

9.5 查詢流程 286

9.5.1 兩種查詢操作 286

9.5.2 客戶端 286

9.5.3 服務器端 287

9.6 數據備份 291

9.6.1 備份機制架構 292

9.6.2 故障恢復 292

9.7 數據壓縮 294

9.7.1 支持的壓縮算法 295

9.7.2 使用配置 295

9.8 本章小結 296

第10章 HBase高級特性 297

10.1 過濾器 297

10.1.1 過濾器的兩類參數 297

10.1.2 比較器 298

10.1.3 列值過濾器 300

10.1.4 鍵值元數據過濾器 300

10.1.5 行鍵過濾器 303

10.1.6 功能過濾器 303

10.1.7 Thrift使用過濾器 304

10.1.8 過濾器總結 309

10.2 計數器 310

10.2.1 使用Shell操作計數器 310

10.2.2 基于單列的計數器 312

10.2.3 多列計數器 313

10.3 協處理器 314

10.3.1 認識協處理器 315

10.3.2 觀察者Observer 316

10.3.3 終端EndPoint 318

10.3.4 協處理器部署 320

10.4 Schema設計要點 323

10.4.1 行鍵設計 323

10.4.2 列族設計 325

10.5 二級索引 325

10.5.1 Client-managed方式 326

10.5.2 ITHBase實現 326

10.5.3 IHBase實現 329

10.5.4 Coprocessor方式 329

10.5.5 MapReduce兩種方式 330

10.6 布隆過濾器 330

10.6.1 基本概念 331

10.6.2 配置布隆過濾器 332

10.6.3 使用布隆過濾器 333

10.7 負載均衡 333

10.7.1 全局計劃 334

10.7.2 隨機分配計劃 337

10.7.3 批量啟動分配計劃 337

10.7.4 通過Shell控制負載均衡 338

10.8 批量加載 338

10.8.1 準備數據:importtsv 338

10.8.2 加載數據:completebulkload 340

10.9 本章小結 340

第11章 集群運維管理 341

11.1 HBase常用工具 341

11.1.1 文件檢測修復工具hbck 342

11.1.2 文件查看工具hfile 346

11.1.3 WAL日志查看工具hlog 348

11.1.4 壓縮測試工具CompressionTest 349

11.1.5 數據遷移工具CopyTable 350

11.1.6 導出工具export 351

11.1.7 導入工具Import 351

11.1.8 日志回放工具WALPlayer 351

11.1.9 行數統計工具RowCounter 352

11.2 Region和RegionServer管理 353

11.2.1 大合并工具major_compact 353

11.2.2 Region合并工具Merge 354

11.2.3 下線節點 354

11.2.4 滾動重啟 355

11.3 性能指標Metrics 356

11.3.1 Master Metrics 357

11.3.2 RegionServer Metrics 357

11.3.3 RPC Metrics 358

11.3.4 JVM Metrics 359

11.3.5 集群屬性Metrics 360

11.4 監控系統Ganglia 360

11.4.1 HBase監控指標 360

11.4.2 安裝、部署和使用Ganglia 361

11.5 HBase管理擴展JMX 366

11.5.1 如何使用JMX 366

11.5.2 基于JMX的監控工具Ella 368

11.6 報警工具Nagios 371

11.7 故障處理 376

11.7.1 問題咨詢渠道 377

11.7.2 常用日志信息 377

11.7.3 常用故障調試工具 379

11.7.4 客戶端故障排查 384

11.7.5 MapReduce故障排查 386

11.7.6 網絡故障排查 387

11.7.7 RegionServer相關問題解決 387

11.7.8 Master相關問題解決 391

11.7.9 ZooKeeper相關問題解決 392

11.8 集群備份 392

11.8.1 冷備份 393

11.8.2 熱備份之Replication 393

11.8.3 熱備份之CopyTable 393

11.8.4 熱備份之Export 393

11.9 本章小結 393

第12章 性能調優 395

12.1 硬件和操作系統調優 395

12.1.1 配置內存 395

12.1.2 配置CPU 396

12.1.3 操作系統 396

12.2 網絡通信調優 399

12.2.1 配置交換機 399

12.2.2 添加機架感知 401

12.3 JVM優化 402

12.3.1 Java垃圾回收算法 402

12.3.2 Java垃圾收集器 403

12.3.3 垃圾回收器的選擇 405

12.3.4 JVM參數設置 406

12.4 HBase查詢優化 408

12.4.1 設置Scan緩存 408

12.4.2 顯式地指定列 409

12.4.3 關閉ResultScanner 410

12.4.4 禁用塊緩存 410

12.4.5 優化行鍵查詢 410

12.4.6 通過HTableTool訪問 410

12.4.7 使用批量讀 411

12.4.8 使用Filter降低客戶端壓力 412

12.4.9 使用Coprocessor統計行數 412

12.4.10 緩存查詢結果 413

12.5 HBase寫入優化 413

12.5.1 關閉寫WAL日志 413

12.5.2 設置AutoFlush 414

12.5.3 預創建Region 415

12.5.4 延遲日志flush 419

12.5.5 通過HTableTool訪問 419

12.5.6 使用批量寫 420

12.6 HBase基本核心服務優化 421

12.6.1 優化分裂操作 421

12.6.2 優化合并操作 423

12.7 HBase配置參數優化 423

12.7.1 設置RegionServer Handler數量 423

12.7.2 調整BlockCache大小 425

12.7.3 設置MemStore的上下限 426

12.7.4 調整影響合并的文件數 427

12.7.5 調整MemStore的flush因子 427

12.7.6 調整單個文件大小 427

12.7.7 調整ZooKeeper Session的有效時長 428

12.8 分布式協調系統ZooKeeper優化 428

12.8.1 配置ZooKeeper節點數 428

12.8.2 獨立ZooKeeper集群 429

12.9 表設計優化 430

12.9.1 開啟布隆過濾器 430

12.9.2 調整列族塊大小 430

12.9.3 設置In Memory屬性 432

12.9.4 調整列族最大版本數 434

12.9.5 設置TTL屬性 435

12.10 其他優化 436

12.10.1 關閉MapReduce的預測執行功能 436

12.10.2 修改負載均衡執行周期 438

12.11 性能測試 438

12.12 本章小結 441

附錄A HBase配置參數介紹 442

附錄B Phoenix SQL語法詳解 451

附錄C YCSB編譯安裝 468
序: