- HBase入門與實踐(第2版)
- 彭旭
- 1647字
- 2022-12-01 19:15:35
前言
人工智能作為當前最熱門的技術之一,其從根本上離不開大數據的支持。如果把人工智能比喻成一個神經網絡,那么數據則是在這個神經網絡中用來傳遞信息的化學物質。沒有信息傳遞的神經網絡顯然一文不值,因此大數據扮演著人工智能基石的角色。Hadoop生態系統中的HDFS和MapReduce分別為大數據提供了數據存儲和數據分析能力,但是它們對在線實時的數據存取卻無能為力,HBase作為Apache頂級項目,彌補了Hadoop的這一缺陷,滿足了在線實時系統低延時的需求。目前HBase在各大互聯網公司中幾乎都有應用,前景廣闊。
從2018年本書第1版出版以來,HBase穩定版一直在不斷升級,這期間HBase引入了一些新特性,例如,對分區服務器(RegionServer)進行邏輯分組,以此提供多租戶的能力;引入分區分配管理器V2(AssignmentManagerV2),使得分配分區(Region)、維護分區狀態的存儲不再依賴ZooKeeper,能夠更好地應對分區長時間RIT(Region In Transition)問題,也做了很多性能提升的改進(例如,使用堆外內存讀寫,減輕垃圾回收的壓力,提供異步讀寫的客戶端API)。整體來說,HBase 1.x的客戶端仍然能夠正常訪問HBase 2.0的HBase服務器端集群,但是有一些客戶端API已經被棄用,需要升級協處理器才能運行。本書以當前穩定版HBase 2.4.9為基礎,將Hadoop升級到2.10.1,對客戶端API進行了全面升級。本書先介紹HBase基礎知識,再帶領讀者深入研讀HBase源代碼,從數據讀取流程、HBase架構實現(如LSM樹和WAL),到構建線上實時低延時系統的調優,結合企業常用的“用戶行為日志管理系統”,讓讀者能夠快速上手HBase并了解其實現原理,同時讓讀者通過分析源代碼來了解HBase的設計思想。期望讀者能夠真正做到從入門到實踐。
本書各章的主要內容概括如下。
● 第1章介紹HBase的誕生背景,以及HBase在國內外各大公司的一些應用場景。
● 第2章介紹HBase的安裝模式,以及分布式部署情況下依賴的ZooKeeper和Hadoop的安裝。
● 第3章介紹與HBase邏輯模型和物理模型相關的概念,如表、分區、行鍵、列族等,以及這些模型物理上的存儲結構。
● 第4章介紹在HBase Shell中如何使用數據定義語言和數據操縱語言,包括如何創建表、查看表、修改表,使用掃描過濾需要查詢的數據,還介紹一些常用的命令,用于查看集群間復制狀態、管理分區等。
● 第5章介紹如何將HBase作為存儲系統,包括行鍵設計原則、選用寬表還是高表等,最后以微信朋友圈的功能實現為例進一步介紹如何在應用中合理地設計HBase表。
● 第6章介紹HBase Java客戶端API,包括在Java客戶端API中使用數據定義語言與數據操縱語言、過濾器、事務等。
● 第7章介紹HBase架構實現,包括存儲、數據寫入與讀取,以及合并策略。
● 第8章介紹兩種類型的協處理器,即觀察者類型協處理器和端點類型協處理器,還介紹這兩種類型的協處理器如何加載和卸載。
● 第9章介紹HBase性能調優,包括客戶端層面如何設置緩存、跳過WAL寫入以及如何使用合適的過濾器,服務器端層面如何完成創建表語句的優化、開啟機柜感知、開啟短路本地讀、開啟補償重試讀以及JVM內存調優等。
● 第10章介紹數據備份與復制的幾種方式,包括復制、快照、導出和導入以及復制表。
● 第11章介紹HBase自帶的監控系統,著重介紹HBase JMX監控。
我記得自己最開始將HBase應用到在線系統時,經常出現HBase集群響應延遲、分區服務器宕機的情況,最后不得不對業務做降級、限流,以減輕HBase集群壓力,從而恢復服務。那時,我將HBase在線調優的經驗積累下來,以為寫技術博客和做技術分享積累文章的心態寫了不少內容,后來在朋友的鼓勵下我決定出版成書,一方面給自己留點兒回憶,另一方面等寶寶長大后算是給她的一個禮物。希望本書能夠幫到你!
感謝我的父母對我個人和家庭無私的付出與無微不至的照顧,感謝我的妻子黃晶對我的包容與支持!感謝珠海市魅族科技有限公司和珠海市卓軒科技有限公司為我提供平臺,豐富了我的實踐經歷,最終將實踐過程中積累的經驗沉淀成書!感謝李柯辰先生與何偉先生對我和本書的鼎力支持與幫助!感謝我生命中遇到的每一個人,愿大家越來越好!祝我的寶貝彭語桐快樂成長!
本書中涉及的示例代碼,我都實際運行過,以確保程序的準確性。但是,由于我的水平有限,書中難免出現錯誤或者不準確的地方。如果讀者在閱讀過程中發現有錯誤之處,敬請指正,我的電子郵箱是18676450028@126.com。
彭旭
2022年3月
- 極簡算法史:從數學到機器的故事
- Expert C++
- LabVIEW程序設計基礎與應用
- Practical Windows Forensics
- Python王者歸來
- Java 11 Cookbook
- Linux命令行與shell腳本編程大全(第4版)
- Python編程:從入門到實踐
- Oracle Exadata專家手冊
- Hands-On Kubernetes on Windows
- Getting Started with Polymer
- Mobile Forensics:Advanced Investigative Strategies
- Building a Media Center with Raspberry Pi
- Expert Cube Development with SSAS Multidimensional Models
- Splunk Developer's Guide(Second Edition)