HBase 2.0版本正式發布

2021-02-23 NoSQL漫談

歡迎點擊右上角"NoSQL漫談"關注我們

Apache HBase PMC主席Michael Stack在Mail List中宣布了HBase 2.0版本已正式Release的消息,該版本可以說是迄今為止最大的一個版本,共包含了4551個Issues(截止這篇文章寫作之時,HBase社區共有20510個Issues,也就是說,這些Issues中共有22%的問題單被包含在2.0版本中):

這距離HBase 1.0版本的發布已經過去了3年多的時間:

在1.0版本正式發布之前,我們看看幾個比較大的版本相關信息:

- 0.90.0版本於2011年1月19日發布,共包含1028個Issues。

- 0.92.0版本於2012年1月23日發布,共包含695個Issues。

- 0.94.0版本於2012年5月14日發布,共包含423個Issues。

- 0.96.0版本於2013年10月19日發布,共包含290個Issues。

- 0.98.0版本於2014年2月16日發布,共包含1307個Issues。

而在2.0版本之前,共有如下幾個Minor Releases:

- 1.1.0版本於2015年5月14日發布,共包含440個Issues

- 1.2.0版本於2016年2月22日發布,共包含647個Issues

- 1.3.0版本於2017年1月16日發布,共包含895個Issues

- 1.4.0版本於2017年12月18日發布,共包含665個Issues

對比於1.0版本,只能說2.0版本中承載了太多的改動。一個版本承載了太多的Features也許是一件好事,但從質量上說,在短期上可能會帶來一點擔憂。

關於HBase版本定義


HBase從1.0.0版本開始,在版本定義上正式遵循了Semantic Versioning規範:

一個版本號,由三部分組成: MAJOR.MINOR.PATCH,關於這三部分數字的變更,定義如下:

- MAJOR版本號變更:意味著可能帶來不兼容的API變更。

- MINOR版本號變更:主要是增加了一些功能特性,但API接口卻是向前兼容的。

- PATCH版本號變更:主要是針對Bug修復。

按照該定義,我們舉例說明如下:

- 從1.0.0到2.0.0版本,可能帶來一些不兼容的API變更。

- 從1.0.0到1.1.0版本,意味著合入了一些新的Feature,但API接口卻是兼容的。

- 從1.0.0版本到1.0.1版本,只是在1.0.0版本基礎之上,做了一些Bug修復,但沒有合入新的Feature。

Semantic Versioning的相關定義,僅僅涉及對外API接口。事實上,HBase的接口可能包含了兩部分,一部分是供內部使用的Internal Interfaces,另外一部分是對外發布的External Interfaces。Coprocessors, MapReduce以及Spark所依賴的,是一些Internal Interfaces,如果這些接口發生了變更如何體現在版本號的變更中?另外,更廣泛的兼容性,應該還要包含源文件/二進位Jar包文件級別的兼容性,序列化/反序列化級別的兼容性,IPC消息的兼容性,Protobufs相關的接口變更等等。因此,HBase Semantic Versioning需要更細節的一些定義,這些最新的定義,請參考HBase官方資料中的"HBase version number and compatibility"章節。

2.0關鍵特性

關於2.0版本所包含的一些關鍵特性,在以前的很多文章中都已經揭示過,這裡再簡單闡述一下:

New region assignment manager

基於Procedure V2的AssignmentManager V2,旨在能夠更快速的分配Region,狀態機的存儲不再依賴於ZooKeeper,能夠更好的應對Region長時間RIT問題。

In-memory flush and compaction

MemStore中的數據達到一定大小以後,不是直接Flush成HDFS中的HFile文件,而是先Flush到內存中的一個不可改寫的Segment,這樣,內存中的多個Segments可以預先合併,當達到一定的大小以後,才Flush成HDFS中的HFile文件,這樣做的好處是希望有效降低Compaction所帶來的寫IO放大問題。

在《一條數據的HBase之旅,簡明HBase入門教程-Flush與Compaction》一文中,詳細介紹了該特性。

Off-heap read and write

減少對Heap內存的使用,改用Offheap區的內存,有效減少GC壓力。

Async RPC Client

利用異步RPC機制,提升客戶請求並發度,提升Client端線程資源利用率。

RegionServer Group

將RegionServer劃分成多個邏輯Group,提供多租戶能力。

MOB

讓HBase更好的支持數KB甚至數MB級別的小對象存儲,這些小對象採用獨立的HFile文件進行存儲,而且不參與普通的Compaction,這樣不會因為小對象數據使得Compaction的寫IO放大問題進一步惡化。

與1.x版本的兼容性

1.x版本的Client可以訪問2.0版本的集群,進行正常的數據讀寫操作。但從1.x版本不停服務的情況下滾動升級到2.0版本是沒法做到的,1.x版本的coprocessor/Endpoint不做改動的情況下也無法在2.0版本中正常使用。

對比HBaseCon Asia 2017大會上Stack的演講內容,似乎有了一些出入,這說明2.0版本為了發布還是不得不做了一些割捨。
附:郵件原文

以下是stack關於2.0版本發布的原始郵件內容:

From:stack <st...@apache.org>

Subject:[ANNOUNCE] Apache HBase 2.0.0 is now available for download

Date:Mon, 30 Apr 2018 23:27:24 GMT

The HBase team is happy to announce the immediate availability of Apache HBase 2.0.0.

Apache HBase™ is the Hadoop database, a distributed, scalable, big data

store. To learn more about HBase, see https://hbase.apache.org/.

HBase 2.0.0 is our second major release, the first release off the HBase

2.0 line.

Please review 'Upgrading from 1.x to 2.x' in the bundled HBase 2.0.0

Reference Guide before installing or upgrading for a list of notable

incompatibilities, major changes, and features including a new Region assignment manager ("AMv2"), a means for configuring the read and/or write path to run off-heap, and an optional In-Memory Compaction ("IMC", A.K.A "Accordion") facility.

According to our adopted Semantic Versioning guidelines[2], we allowed ourselves make breaking changes in this major version release. For example, Coprocessors will need to be recast to fit more constrained APIs and rolling upgrade of an hbase-1.x install to hbase-2.x without downtime is (currently) not possible. That said, a bunch of effort has been expended mitigating the differences; a hbase-1.x client can perform DML against an hbase-2 cluster. A bundled compatibility report showing difference from 1.2.6 may be of help[3].

For the complete list of fixes and improvements, see the included `CHANGES.md` (or online at [1]) and `RELEASENOTES.md`.

Download through an ASF mirror near you:

  http://www.apache.org/dyn/closer.lua/hbase/2.0.0/

The relevant checksums files are available at:

   https://www.apache.org/dist/hbase/2.0.0/hbase-2.0.0-src.tar.gz.sha512

   https://www.apache.org/dist/hbase/2.0.0/hbase-2.0.0-bin.tar.gz.sha512

Project member signature keys can be found at

  https://www.apache.org/dist/hbase/KEYS

PGP signatures are available at:

   https://www.apache.org/dist/hbase/2.0.0/hbase-2.0.0-src.tar.gz.asc

   https://www.apache.org/dist/hbase/2.0.0/hbase-2.0.0-bin.tar.gz.asc

For instructions on verifying ASF release downloads, please see

    https://www.apache.org/dyn/closer.cgi#verify

Question, comments, and problems are always welcome at:

dev@hbase.apache.org.

Thanks to all who contributed and made this release possible.

Cheers,

The HBase Dev Team

1. https://s.apache.org/hbase-2.0.0-JIRA-changes

2. http://hbase.apache.org/2.0/book.html#hbase.versioning.post10

3. http://apache.mirrors.tds.net/hbase/2.0.0/compatibiliity_report_1.2.6vs2.0.0.html

精彩文章推薦

《一條數據的HBase之旅》系列連載文章:

簡明HBase入門教程-開篇

簡明HBase入門教程-Write全流程

簡明HBase入門教程-Flush與Compaction

圖資料庫相關文章:

「一起學圖資料庫」系列之圖資料庫概述

「一起學圖資料庫」系列之圖資料庫與傳統資料庫的對比分析

從擴線查詢能力分析圖資料庫Titan的設計改進點

《OpenTSDB技術原理》系列連載文章:

OpenTSDB原理系列-元數據模型

OpenTSDB原理系列-TSDB數據表設計

OpenTSDB原理系列-線程模型

OpenTSDB原理系列-讀取流程

其它精彩文章:

從HBase中移除WAL?3D XPoint技術帶來的變革

號稱十倍性能於Cassandra的ScyllaDB,究竟祭出了哪些技術"利器"?

NewSQL是否是NoSQL的取代者?

閱讀開源項目源碼的建議姿勢

相關焦點

  • KingRoot 5.0版本正式發布
    大家好,我們已於11月16日正式對外發布了KingRoot 5.0正式版!
  • 結束測試 微星Afterburner 2.2.0正式版發布
    一直以來微星聯合Guru3D都在不斷修正升級這款工具,日前Afterburner終於結束了將近一年之久的測試發布了2.2.0最終正式版,而這一版也是目前支持顯卡型號最齊全,功能最全面,穩定性最高的版本。
  • 再見了Netflix,SpringCloud 2020.0.0正式發布
    北京時間2020-12-22深夜,Spring Cloud 2020.0.0版本正式發布。2020.0.0是第一個使用新版本方案的Spring Cloud發行版本。Spring Cloud早在年初就啟動了該版本的研發工作,並在今年4月份就已經發布了其2020.0.0-M1版本(第一個裡程碑版本),直到離2020年結束不到10天了才「憋出」大招,正式RELEASE。
  • 獨家 | pyecharts V1.0.0 版本正式發布
    pyecharts 經過了半年的沉寂後,終於發布了新版本啦!新版本號將從 v1.0.0 開始,這是一個全新的,向下不兼容的 pyecharts 版本。不過如果開發者以前接觸過 pyecharts 的話,新版本對於你們來說也是會很容易上手的。新版本修復 N 個 0.5.x 版本留下來的 bug。
  • Bitcoin Core 0.16.0版本正式發布:都有哪些新功能?
    在今天正式發行,這是9年前由中本聰發布出的軟體客戶端之後的的第16代比特幣的客戶端版本。在Bitcoin Core 維護者Wladimir van der Laan的監督下,這個最新的主要版本是由大約100個貢獻者在5個月的時間裡開發出來的。與普通的新版本一樣,Bitcoin Core 0.16.0包括了性能的改進、bug修復和其他優化。這個版本特別包括了錢包界面的幾個新增功能。
  • 發布兩款新表,「翻新」18 款舊錶,Android Wear 2.0 將在 2 月正式發布
    - shenzhenware -昨天,爆料人 Evan Blass 在 Twitter 上透露,Android Wear 2.0 正式版將於 2 月 9 日發布,同時 Google 還會與 LG 合作推出搭載最新 Android Wear 2.0 的智能手錶。
  • 鴻蒙OS 2.0 正式發布,超越蘋果吊打安卓?
    在吹宣傳了鴻蒙OS一年後,華為終於在今天的開發者活動上正式發布了鴻蒙 OS 2.0 手機開發者 Beta 版本,華為P40 、P40 Pro、Mate 30、Mate 30 Pro、MatePad Pro 等設備,都可以申請搶先體驗。
  • 《勁舞團》手遊全迭代 2.0版本正式上線
    此次推出的2.0版本,在繼承《勁舞團》12年經典的基礎上,傳承勁舞創新精神,再創輝煌。遊戲已於6月29日更新維護完畢,立即登錄官網下載遊戲,即可體驗全新的勁舞世界。在繼承端遊經典造型及核心玩法的同時,2.0版本突破現有美術風格的限制,主打Q版寫實(Q-Reality)的風格,構建出現代時尚的世界級城市景貌,整體遊戲場景的革新和統一,向玩家傳遞真實的臨場感,開創了音舞遊戲的2.0時代。
  • PyTorch 1.0 穩定版正式發布!
    穩定版終於正式發布了!新版本增加了JIT編譯器、全新的分布式包、C++ 前端,以及 Torch Hub等新功能,支持AWS、谷歌雲、微軟Azure等雲平臺,一句話,強大!昨天,在 NeurIPS 大會上,Facebook 正式發布 PyTorch 1.0 穩定版!這距離 PyTorch 1.0 預覽版發布僅僅過去了兩個月。
  • 騰訊連連小程序發布2.0版本,優化IoT場景使用體驗
    9月22日,騰訊雲正式對外發布騰訊連連微信小程序2.0版本,新版本在視覺體驗及關鍵功能上全面增強並優化消費者體驗。具體來說,用戶可以通過微信掃一掃直接拉起騰訊連連小程序,消費者無需下載APP。此外2.0版本也發布了標準藍牙設備接入協議。去年,騰訊雲正式推出騰訊連連微信小程序,企業藉助騰訊連連可以降低物聯網產品的研發門檻,加快研發速度。同時,騰訊連連還可以提供以微信小程序為載體的、面向消費者的應用入口,打造針對物聯網產業的全套C2B開放平臺服務,推動萬物互聯進程加速。此次2.0版本的多項升級,標誌著騰訊連連物聯網服務能力的全面進化。
  • Node.js 4.0.0 正式發布了
    不用驚訝,就是4.0.0,這是 Node.js 項目 和 io.js 項目複合後的首個穩定版本。目前 Node 團隊包含 44 個成員,還有超過 100 名的代碼貢獻者。Node.js 4.0 包含 V8 4.5,支持大多數 ES6 的新特性。同時 Node 4.0 將引入 LTS 長期支持計劃的發行周期,首個LTS版本將於10月份發布,同時 Node 以後將每 6 個月發布一個主要的穩定版本,4月份一個,10月份一個(類似 Ubuntu)。
  • 《寶可夢Home》V1.2.0更新版本發布:新增劍盾DLC新寶可夢!
    《寶可夢Home》於6月17日發布了V1.2.0更新版本,新增了《寶可夢劍盾:DLC鎧之孤島》的數據,同時修復了一些之前版本中存在的部落菌為大家提供了最新版本的下載地址,一起來看看吧~V1.2.0版本更新內容:・支持了《寶可夢 劍/盾 擴展票》第1彈「鎧之孤島」。・將GTS中「想要的寶可夢」的指定條件修復為無法以不可能實現的條件來指定。・改善了寶可夢盒的標籤功能。・修復了其他錯誤。
  • 權志龍·NIKE2.0版本新鞋正式發布,這也太可了!GD本人更是帥爆
    隨著前階段的預熱和曝光,權志龍2.0版本Air Force 1 終於與大家見面了!下面我們先來一起看看這雙鞋都有哪些不同的新設計!這雙Nike 與權志龍合作推出的第二款 Air Force 1 "Para-noise"已經正式發布!和去年一樣,它的白色鞋面下依舊有著隱藏的細節。通過日常穿著的磨損,會逐漸顯露出與眾不同的別樣面貌,並且權志龍認為人們在艱難時期更需堅持自我實現,他把這樣的理念稱為 "Youtopia"。
  • 絕地求生 PC1.0 版本正式發布,登錄送絕版吃雞T恤,網友吐槽:更新慢到窒息!
    就在大家失望之餘,PUBG-STEAM官微默默地發了一篇題為《慶 絕地求生 PC1.0 版本正式發布》的文章,告訴大家PC1.0版正式發布。下面是全文:這是一個所有人都在期待的時刻。今天,我們將告別搶先體驗,正式發布 PC1.0 版本。
  • Android Studio 3.0 Canary 版本發布
    對於 Android 開發人員來說,Google I/O 2017 最大的新聞莫過於 Kotlin 程式語言得到 Google 官方認可正式轉正、名正言順成為 Android 屆的 Swift 這一消息啦。今早開始,各大水友群、媒體號和朋友圈簡直刷到根本停不下來。然而,本文並不是要說 Kotlin 扶正這件事。
  • Cocos Creator v2.1.2 正式發布
    自 Cocos Creator 2.1.0 發布之後,經過半年的更新迭代,版本已經趨於穩定,目前 2.1 的新增用戶已經佔據主流。
  • 借著華為發布鴻蒙OS 2.0 Beta版本,說說作業系統那些事兒
    2020年12月16日,華為在北京舉辦的鴻蒙(Harmony) OS 2.0 beta活動大會上,正式發布了面向手機應用的鴻蒙OS 2.0Beta版本,同時面向部分華為機型開放申請公測。這意味著華為將向200多萬手機開發者開放完整HarmonyOS 2.0系統,包括應用開發接口(API)、集成開發環境(IDE)、DevEco Studio工具平臺等。
  • 谷歌正式發布Android Wear 2.0系統:支持iPhone,可脫離手機使用
    現在,谷歌官方終於宣布了關於Android Wear 2.0發布的詳細消息。LG的時尚版與運動版手錶也正式發布。谷歌的可穿戴之路,還在延續。2月9日凌晨,谷歌不僅正式公布了Android Wear 2.0系統,還攜手LG推出首批搭載該系統的智能手錶:LG Watch Style和Watch Sport。
  • 在線音樂正式回歸!魅族音樂 App 8.2.0 版本更新
    IT之家8月18日消息 魅族今日正式推送了 Flyme 8.1.2.3A 更新,但由於 BGM 獲取功能和在線音樂是通過應用獨立推送至用戶,故今日晚間才收到該 App 更新推送。此次音樂 App 8.2.0 版本是魅族在線音樂公測版本的首個更新,新增在線音樂功能,優化視覺及布局,更新包大小 25.98MB。IT之家了解到,魅族音樂 App 公測前期僅提供部分免費歌曲供體驗,後續將陸續開放會員付費及全部曲庫。
  • 華為正式發布鴻蒙作業系統Beta版本,對標iOS與安卓
    隨著鴻蒙的發布,華為有望打破國外巨頭所壟斷,為中國提供自己的安全可靠的作業系統。今天上午,華為舉行 HarmonyOS 2.0 手機開發者 Beta 活動,現場正式發布了 HarmonyOS 2.0 手機開發者 Beta 版本。