開啟一個新時代: Apache HBase 1.0 釋出

譯者: Caroline發表於2015-02-26

HBase社群的過去、現在及未來

Apache HBase社群釋出了Apache HBase 1.0.0。它花費了七年時間在Apache HBase專案領域取得了里程碑式的發展,這次釋出提供了一些令人興奮的特性和並未犧牲穩定性的新API,無論線上還是在硬碟上都與HBase 0.98.x相容。

讓我們回顧Apache HBase 專案的過去、縱觀它的現在、展望一下未來。

版本啊版本

在列舉這個版本的詳細特性之前,讓我們來瀏覽一下過去的版本歷史。HBase 始於 Apache Hadoop 一個子專案, 大約在 2007 隨同 Hadoop 一起釋出。三年後,HBase 成為了一個獨立的 Apache 頂級專案。由於 HBase 依賴於 HDFS,所以社群讓 HBase 與 Hadoop 的主版本號保持一致。例如,HBase 0.19.x 可以和 Hadoop 0.19.x 協同工作,等等。

然而,HBase 社群希望可以讓一個 HBase 版本可以與多個 Hadoop 版本協同工作—不僅僅是其所匹配的主版本號。這樣一來,一個新的命名方案就誕生了,新版本將以接近1.0的主版本0.90開始,就像上面時間線中展示的一樣。我們也運用了一種“偶數-奇數”版本的慣例,也就是奇數版本是“開發者預覽”,偶數版本是可以用來發布的“穩定版”。穩定釋出系列包括0.90、0.92、0.94、0.96和0.98(詳見HBase版本)。

在0.98之後,我們把主幹版本命名為0.99-SNAPSHOT,但是我們官方已經用完了所有的數字!欠考慮了,去年 HBase 社群一致認可這個專案已經足夠成熟穩定,可以作為1.0.0版本了。在三個0.99.x“開發者預覽”系列版本和六個 Apache HBase 1.0.0備選版本之後,HBase 1.0.0現在釋出了!看上面的圖表,它是由 Lars George 釋出的時間表,顯示了每個版本的支援週期,及任何開發者預覽版本(例如0.99->1.0.0),如果有的話。 

HBase 1.0.0,開啟了一個新時代

1.0.0版本有三個目標

1)為將來的1.x系列版本奠定穩定基礎

2)穩定執行的 HBase 叢集及客戶端

3)讓版本和相容性方面更加明確

包括之前的0.99.x系列版本,1.0.0解決了超過1500個 JIRA 跟蹤的問題。其中一些主要的修改包括: 

API 整理和改變

HBase 的客戶級 API 已經發展多年了。為了簡化語義和支援,讓它可以擴充套件並且在將來更容易使用,我們回顧了1.0之前的API。為此,1.0.0引進了新的 API,並且廢棄了一些常用的客戶端 API(HTableInterface, HTable 和 HBaseAdmin)

我們建議您更新您的應用程式來使用新風格的 API,因為這些廢棄的 API 在將來2.x系列版本之後被刪除。進一步的指導,請訪問:http://www.slideshare.net/xefyr/apache-hbase-10-releasehttp://s.apache.org/hbase-1.0-api

所有的客戶端 API 都標識為 InterfaceAudience.Public 類。以表明其是 HBase 官方的“客戶端 API”(更多 Audience 的說明詳見 HBase Refguide 中的“11.1.1HBase API Surfase”)。接下來,所有的1.x 版本的 API 都會與 public 客戶端的類相相容。 

使用時間軸協調區域副本的可讀性

作為第一階段的一部分,這個發行版包括了一個實驗性的“使用時間軸協調區域副本的可讀性”特點。也就是說,一個區域可以以只讀模式放在多個區域伺服器上。該區域副本之一將會是主伺服器,支援寫入,其它副本將共享與之相同的資料。對複製副本的讀請求可以為後備的 RPC 請求來提供時間連續的高可用性。檢視JIRA HBASE-10070 瞭解更多詳情。

線上配置修改及來自0.89-fb分支的其它前向移植

Apache HBase 的 0.89-fb 分支是 Facebook 釋出他們的修改的地方。 HBASE-12147 JIRA 的前向移植補丁支援過載伺服器配置的一個子集,而無需重啟區域伺服器。

除了上面所列舉的,還有成百上千的改進和效能提升(提升的WAL pipeline,使用 disruptor, 多 WAL, 更多的off-heap 等等)和漏洞修復以及其它好的東西,太多了就不列舉了。詳細介紹請檢視官方的釋出日誌。釋出日誌和白皮書也包含了二進位制、原始碼和協議的相容性說明、所支援的 Hadoop 和 Java 版本,從0.94、0.96和0.98版本升級的說明以及其它重要詳情。

HBase 1.0.0版本也開始使用“語義版本號”釋出 HBase。換言之,將來 HBase 版本將會使用顯示相容語義的“主版本.次版本.補丁”版本號。HBas e的白皮書包含了所有相容性方面的內容和不同版本之間預計的內容。

接下來

我們將 HBase 1.0.0標記為 HBase 的下一個穩定版本,這就意味著所有的新使用者都應該開始使用這個版本。然而,作為一個資料庫,我們明白,切換到更新的版本可能會花費一些時間。我們將會繼續維護和使用0.98.x版本,直到使用者社群準備結束它的生命。1.0.x、1.1.0、1.2.0等發行版預計將釋出其相應的分支,而2.0.0和其它主要的版本也將如時到達。

兩段讀複製、按列族重新整理、procedure v2、SSD for WAL 或列族資料等等特性也即將到來。

總結

最後,HBase 1.0.0發行版已經走過了一段漫長的道路,大量的核心成員、提交者、貢獻者的辛勤工作帶來了諸多貢獻,我們想對所有的使用者和 HBase 貢獻者致以衷心的感謝!

Keep HBase’ing!

相關文章