TOP
0
0
【23號簡體館日】限時三天領券享優惠!!
HBase企業應用開發實戰(簡體書)
滿額折

HBase企業應用開發實戰(簡體書)

人民幣定價:89.00 元
定  價:NT$ 534 元
優惠價:87465
領券後再享88折
海外經銷商無庫存,到貨日平均30天至45天
可得紅利積點:13 點
相關商品
商品簡介
作者簡介
名人/編輯推薦
目次
書摘/試閱

商品簡介

《HBase企業應用開發實戰》強調HBase在企業的實際應用,立足于企業的實際生產環境,旨在幫助企業切實解決大數據技術如何落地的問題。三位作者都是奮戰在中國大數據技術一線的實踐派專家,本書是他們實踐經驗的結晶。

《HBase企業應用開發實戰》內容在三個維度上具有重要特色:功能維度,從HBase的安裝配置、參數設置,到數據模型、表結構設計、客戶端使用、高級特性,本書做了系統且詳盡的介紹;實戰維度,不僅通過3個典型的應用案例詳細講解了如何使用HBase設計大型的數據應用系統,而且還結合實際生產系統講解了HBase的集群運維、監控和性能調優;理論維度,則深入分析了HBase、框架設計、模式設計和基本原理。可謂是理論與實踐完美結合,深度與廣度兼備!


作者簡介

馬延輝,資深Hadoop技術專家,對Hadoop生態系統相關技術有深刻的理解。曾就職于淘寶、Answers.com、暴風影音等知名互聯網公司,從事Hadoop相關的技術工作,在企業級的大數據系統的研發、運維和管理方面積累了豐富的實戰經驗。開源HBase監控工具Ella作者。在國內Hadoop社區內非常活躍,經常在各種會議和沙龍上做技術分享,深受歡迎。現在專注于大數據技術在傳統行業的落地,致力于大數據技術的普及和推廣。

孟鑫,資深Hadoop技術專家,在軟件行業從業近10年,對海量數據處理技術有著深刻的認識,曾負責Hadoop平臺建設工作,在Hadoop開發和運維方面積累了大量的實戰經驗。于2013年獲取了Cloudera的Hadoop Developer認證,多次到企業和社區去分享Hadoop、HBase等方面的技術知識和經驗。對技術擁有極大的興趣,熱衷于研究各種新技術,總結和分享經驗及教訓,目前從事管理工作,但依然熱衷于產品設計和實現。

李立松,資深Hadoop技術專家,Easyhadoop技術社區創始人之一,對HDFS、MapReduce、HBase、Hive等Hadoop生態系統中的技術有比較深入的研究,在Hadoop開發方面積累了豐富的經驗。曾就職于暴風,負責暴風大數據平臺開發與應用,暴風大數據項目負責人。現在就職于締元信,擔任Hadoop高級工程師,負責締元信DMP平臺的研發工作。


名人/編輯推薦

國內資深Hadoop技術專家實踐經驗結晶,完全從企業實際生產環境和需求出發,旨在幫助企業真正解決大數據的落地問題
系統介紹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





書摘/試閱

第一部分 Part 1

基 礎 篇

第1章 認識HBase

第2章 HBase安裝與配置

第3章 數據模型

第4章 HBase表結構設計

第5章 HBase客戶端

Chapter 1 第1章

認識HBase

本章將介紹大數據背景和HBase的基本概念,從大數據引申到NoSQL,并闡述HBase出現的契機。隨后,將介紹HBase的概念、發展歷史、發行版本和基本特性。其中,HBase的核心功能模塊將作為一個小節單獨重點介紹,最后通過介紹HBase的使用場景和經典案例,讓讀者朋友能夠清晰地了解HBase可以做什么。

作為NoSQL家庭的一員,HBase的出現彌補了Hadoop只能離線批處理的不足,同時能夠存儲小文件,提供海量數據的隨機檢索,并保證一定的性能。而這些特性也完善了整個Hadoop生態系統,泛化其大數據的處理能力,結合其高性能、穩定、擴展性好的特行,給使用大數據的企業帶來了福音。

因為本章是全書的開篇,唯有簡明扼要地介紹才能幫助正在學習和想要學習HBase的讀者,所以本章將提綱掣領地介紹HBase的相關知識,重點介紹HBase是什么以及HBase能做什么兩部分。

1.1 理解大數據背景

經美國權威機構IDC調查發現,現如今的公司正在以前所未有的速度和豐富的類型產生數據,并且也有能力存儲這些數據,但是,如何關聯這兩方面以便產生最大的商業價值,是所有公司共同面臨的挑戰。這個問題非常復雜:雖然業務人員在技能提升和專業工具的幫助下,越來越了解數據,但由于數據的增長速度越來越快,積累量級越來越大,公司可以利用的數據比例正在迅速下降。

1.1.1 什么是大數據

Gartner認為與過去相關概念相比,大數據強調3V特征,即Volume(量級)、Varity(種類)和Velocity(速度),如圖1-1所示。

圖1-1 大數據三大特性

如今存儲的數據量正在急劇增長,2000年全球存儲了EB級別的數據,預計到2020年,該值將變為ZB級別。僅Twitter每天就會生成超過10TB的數據,Facebook的數據為幾十TB,一些特殊的企業在每小時就會產生TB級別的數據。

上面這些企業是一些典型的案例,其實我們生活的方方面面都會形成很多“軌跡”。例如,打開手機會生成一個事件;乘坐公共交通刷卡,這是一個事件;檢票登機、打卡上班、App Store上購買應用、更換電視頻道、使用高速路電子收費系統等。每一項操作都會生成數據,并且該數據的量級與參與的人數相關,全球60億人口,如果僅僅1/10的人參與進來,那么這個數據量級就已經非常驚人。就在10年前IT界超過1TB的數據倉庫屈指可數,而現在則是“舉不勝舉”。

隨著傳感器、智能設備以及社交協作技術的激增,企業中的數據也變得更加復雜,因為它不僅包含傳統的關系型數據,還包含來自網頁、Web日志文件、社交媒體論壇、電子郵件、文檔、傳感器數據等原始、半結構化和非結構化數據。

傳統系統可能很難存儲、分析這些數據的內容,更不要說挖掘有價值的信息。因為傳統的數據庫、數據倉庫、聯機事務處理等技術并不適合處理這些數據。盡管一些公司正在朝大數據方向大力發展,但總體而言,大部分公司只是剛開始理解大數據。當回首整個數據庫發展的歷程會發現,人們將大部分時間都花在僅20%的數據上:這些數據格式整齊且符合嚴格模式的關系類型。但事實是,全球80%的數據是非結構化的或者半結構化的。

視頻和圖片不能輕松或高效地存儲在關系型數據庫中,某些事件信息可能動態地更改(如氣象),它們不太適合嚴格的模式。要利用大數據,企業必須能夠分析所有類型的數據,包括關系和非關系數據:文本、傳感器數據、音頻和視頻等。

有效處理大數據需要在數據變化的過程中對它的數量和種類進行分析,而不只是在“靜止”狀態進行分析。業界定義這種情況為從單純批量計算模式到實時動態計算模式的內涵式轉變。內涵式在這里也比較容易理解,即結構優化、質量提高,是一種實現實質性的跨越式的進程。大數據平臺允許用戶將所有數據存儲為其原生的業務對象格式,通過可用組件上的大規模并行計算實現價值,不僅僅是批量處理和離線分析,同時支持實時查詢和處理等特征,甚至要求響應時間在毫秒級別,并且可承受大規模的并發訪問,這些都是“速度”特征的范疇。

……

您曾經瀏覽過的商品

購物須知

大陸出版品因裝訂品質及貨運條件與台灣出版品落差甚大,除封面破損、內頁脫落等較嚴重的狀態,其餘商品將正常出貨。

特別提醒:部分書籍附贈之內容(如音頻mp3或影片dvd等)已無實體光碟提供,需以QR CODE 連結至當地網站註冊“並通過驗證程序”,方可下載使用。

無現貨庫存之簡體書,將向海外調貨:
海外有庫存之書籍,等候約45個工作天;
海外無庫存之書籍,平均作業時間約60個工作天,然不保證確定可調到貨,尚請見諒。

為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。

若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。

優惠價:87 465
海外經銷商無庫存,到貨日平均30天至45天

暢銷榜

客服中心

收藏

會員專區