hbase實戰
2023年秋季我開始和hbase結緣,當時它還是乙個新生專案,一年前剛剛發布。早期版本出來時,hbase表現很不錯,但是也不是沒有令人尷尬的缺陷。hbase專案當時有近10個軟體commiffer,作為乙個apache子專案還算不錯。接下來是nosql宣傳的高潮。當時專有名詞nosql還沒有出現,但是隨後的一年這個術語變成了通俗用語。沒有人能夠說清楚為什麼nosql重要,只知道它就是重要,反正資料領域開源社群的每個人都對這個概念很著迷。社群中有兩種聲音,有人批評關係型資料庫,批評它愚不可及的嚴謹;有人嘲笑新技術,嘲笑它不夠成熟。
在收集了基本需求後,我們著手尋找新型資料技術。我們的團隊不大,一邊維護現有系統,一邊花了數月時間評估不同的選擇。我們試驗了不同的方法,並親身感受了對資料手工分割槽的痛苦。我們研究了cap定理和最終一致性,最後的結論是妥協。儘管hbase有缺點,我們還是決定選擇它,我們認為開源技術的潛在好處超過了它的風險,並且說服了經理。
我在家裡玩過hadoop,但是從沒有寫過真正的mapreduce作業。我聽說過hbase,但在這份新工作之前也沒有特別關注過。隨著時間推移,我們已經開始行動。我們申請了一些空閒機器和幾個機架,然後就開工了。這家公司是.net的地盤,我們得不到運維支援,所以我們學著使用bash和rsync,自己管理整個集群。
我加入了郵件列表和irc頻道,開始提問題。就在那個時候,我認識了amandeep。他在忙於碩士**,嘗試把hbase執行到hadoop以外的系統上。不久他完成學業,加入amazon,搬到西雅圖。在這個充滿微軟痕跡的城市中,我們兩個是少有的hbase粉絲。隨後兩年很快過去了……
2023年秋季,第一次提出讓我們寫《hbase實戰》。在我們看來,這很搞笑。為什麼是我們這兩個社群會員來寫這本書?內部來看,這是一塊難啃的骨頭。《hbase權威指南》正在進展中,我們認識它的作者,我們深知在他面前的挑戰。外部來看,我認為hbase只是乙個「簡單的鍵值資料庫」。api只有5個基本概念,都不複雜。我們不想再寫一本類似於《hbase權威指南》那樣介紹內部機制的書,我也不相信應用開發人員從這類書中可以得到足夠有價值的東西。
我們開始做頭腦風暴,事情很快清楚了,我是錯的。不僅可以找到足夠的資料幫助使用者,而且社群會員的角色使得我們成為寫這本書的最佳人選。我們開始分門別類整理多年來我們使用這門技術累積下來的知識。這本書是我們8年來使用hbase實踐經驗的昇華。它面向hbase的全新使用者,可以指導大家躍過我們自己當年遇到過的障礙。我們盡可能多地收集和編篡了散布在社群裡的內部知識。對於模糊的建議我們盡可能給出清晰的指導。我們希望你能發現這本書是乙個完整的手冊,可以幫助你順利開始使用hbase,而不只是乙個簡單的問答列表。
hbase現在逐漸穩定了。我們開始時遇到過的大部分缺陷已經被解決、打上補丁、或者完全修改了架構。hbase正在接近1.0版本,在這個里程碑時刻我們很自豪自已是社群的一部分。我們很自豪把這份書稿提交給社群,希望它可以鼓舞和幫助下一代hbase使用者。hbase最強大之處就是興旺的社群,我們希望你加入到社群來,幫助社群在資料系統新時代繼續創新。
nick dimiduk
當你看到這裡的時候,你大概很想知道我是怎樣進入hbase世界的。首先我要感謝你選擇這本書來學習hbase,學習怎樣使用hbase作為儲存系統來搭建應用系統。希望你能找到有用的東西和實用技巧,以便更好地搭建應用系統,祝你成功。
我曾經在加州大學聖克魯茲分校進行本科學習,當時我在思科公司找了乙份兼職研究員的工作,專注於分布式系統。我所工作的團隊當時在搭建乙個資料整合框架,這個框架可以對數百種資料儲存(包括但不限於大型關係型資料庫管理系統)上的資料進行整合、索引和研究。我們開始尋找可以解決問題的系統和解決方案。我們評估了許多系統,從物件資料庫到圖形資料庫,最後我們考慮基於berkeley db構建乙個定製的分布式資料儲存。顯而易見的乙個關鍵需求是可擴充套件性,但是我們並不想從頭開始構建乙個分布式系統。想想看,如果你為某個機構工作,打算構建乙個定製的分布式資料庫或者檔案系統,最好先看看有沒有現成的解決方案可以解決你的一部分問題。
基於這個原則,我們認為從頭開始搭建新系統是不明智的,我們希望使用已有的技術。隨後我們開始使用hadoop系列產品,嘗試了很多元件,在hbase上為資料整合系統搭建了概念驗證原型系統。系統工作良好,擴充套件性也不錯。hbase很適合解決這類問題,但是當時它們都是新生專案,能夠保證我們成功的乙個重要因素是它們的社群。hbase有著乙個最熱情的、最有活力的開源社群;當時社群規模要小得多,但是迄今為止其核心理念一直沒有變化。
後來資料整合專案成了我的研究生**。這個專案用hbase作為核心,因此我也越來越深入地參與到社群中。在郵件列表裡和irc頻道裡,開始我是問別人問題,後來我也回答別人的問題。在這段時間裡我認識了nick並了解了他在做什麼。在為這個專案工作的過程中,我對這個技術和開源社群的興趣和熱愛與日俱增,我希望一直參與下去。
但是深入思考之後,我們意識到構建hbase應用系統很有挑戰,而市面上缺乏足夠的資料可供啟蒙。這種情況限制了hbase的發展。我們決定收集更多如何有效使用hbase的資料,來幫助大家構建滿足需要的系統。我們花了一些時間整理資料,2023年秋季,我們開始了這本書的寫作。
那段時間,我搬家到了舊金山,加入了cloudera公司,接觸到很多搭建在hadoop和hbase上的應用系統。我盡力結合我所知道的以及過去多年在hbase相關工作中和研究生學習中得到的,提取精華寫到你現在讀的這本書中。多年來hbase走了很長的路,許多大公司使用它作為核心系統。它比以往更加穩定、快速和易於維護,1.0版本也接近發布了。
我們寫這本書的目的就是希望學習hbase可以更加有章可循,更加容易,更加有趣。等你進一步了解hbase以後,我們鼓勵你參與到社群中來,你可以學到更多在這本書中沒有講到的。你可以發表部落格,貢獻**,分享經驗,讓我們一起推動這個偉大的專案向各種可能的方向走得更遠。開啟書,開始閱讀,歡迎來到hbase世界!
第一部分 hbase基礎
第1章 hbase介紹
1.1 資料管理系統:速成
1.2 hbase使用場景和成功案例
1.3 你好hbase
1.4 小結
第2章 入門
2.1 從頭開始
2.2 資料操作
2.3 資料座標
2.4 小結
2.5 資料模型
2.6 表掃瞄
2.7 原子操作
2.8 acid語義
2.9 小結
第3章 分布式的hbase、hdfs和mapreduce
第二部分 高階概念
第4章 hbase表設計
第5章 使用協處理器擴充套件hbase
第6章 其他的hbase客戶端選擇
第三部分 應用系統例項
第7章 通過例項學習hbase:opentsdb
第8章 在hbase上查詢地理資訊系統
第四部分 讓hbase運轉起來
第9章 部署hbase
第10章 運維
《HBase權威指南》一導讀
hbase權威指南 你閱讀本書的理由可能有很多。可能是因為聽說了hadoop,並了解到它能夠在合理的時間範圍內處理pb級的資料,在研讀hadoop的過程中發現了乙個處理隨機讀寫的系統,它叫做hbase。或者將其稱為目前流行的一種新的資料儲存架構,傳統資料庫解決大資料問題時成本更高,更適合的技術範圍是...
《Greenplum企業應用實戰》一導讀
為什麼寫作本書 阿里巴巴是國內最早使用greenplum作為資料倉儲計算中心的公司。從2009年到2012年greenplum都是阿里巴巴b2b最重要的資料計算中心,它替換掉了之前的oracle rac,有非常多的優點。greenplum的效能在資料量為tb級別時表現非常優秀,單機效能相比hadoo...
《Xcode實戰開發》 導讀
1.2 參與計畫 1.3 更多素材 1.4 小結 第 2 章 探索xcode環境 2.1 得到乙個視窗 2.2 建立專案 2.3 工作區視窗 2.4 導航器區域 2.5 跳轉欄 2.6 編輯器區域 2.7 工具區域 2.8 除錯區域 2.9 活動檢視器 2.10 標籤式編碼 2.11 組織器視窗 2...