1. 程式人生 > >HBase 2.0版本正式釋出

HBase 2.0版本正式釋出

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 Document中的“HBase version number and compatibility”章節。

2.0關鍵特性

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

  1. New region assignment manager

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

  2. In-memory flush and compaction

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

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

  3. Off-heap read and write

    減少對Heap記憶體的使用,改用Offheap區的記憶體,有效減少GC壓力。

  4. Async RPC Client

    利用非同步RPC機制,提升客戶請求併發度,提升Client端執行緒資源利用率。

  5. RegionServer Group

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

  6. 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 <[email protected]>
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:
[email protected]

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 2.0版本正式釋出

Apache HBase PMC主席Michael Stack在Mail List中宣佈了HBase 2.0版本已正式Release的訊息,該版本可以說是迄今為止最大的一個版本,共包含了4551個Issues(截止這篇文章寫作之時,HBase社群共有20510個Issues,也就是說,這些Issu

Apache HBase 2.0.3 釋出,分散式資料庫

   Apache HBase 2.0.3 已釋出,HBase – Hadoop Database,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用 HBase 技術可在廉價 PC Server 上搭建起大規模結構化儲存叢集。 HBase 2.0.3 是 HBas

OWASP ZAP 2.7.0 版本全球釋出|棉花哥的部落格

0x01OWASP ZAP OWASP Zed Attack Proxy (ZAP)工具是世界上最受歡迎的免費安全工具之一。ZAP可以幫助安全測試人員在開發和測試應用程式過程中,自動發現 Web應用程式中的安全漏洞。另外,它也是一款提供給具備豐富經驗的滲透測試人員進行人工安全測試的優秀工具。

[軟體分享]迅雷7.2版本正式釋出

從迅雷陽臺的部落格上看到了迅雷7.2版本的改動,於是前幾天下載了測試版本來試用,果然是有重大改變。通過上面的圖大家應該都看到了,跟以前的迅雷UI完全不同了,有點類似於FireFox4.0以後版本的UI,又有點類似於Office2010的介面,無縫介面,麵包屑標籤頁等。本次更新的內容: 1、大幅改進迅雷7主介面

Docker EE 2.0版本釋出,完美支援Kubernetes容器編排_Kubernetes中文社群

儘管創始人剛離開Docker公司,但Docker仍持續版本更新計劃。Docker最近釋出了Docker企業版的2.0版,主打可以跨OS、跨雲的企業級容器管理平臺,也強調可以通過Kubernetes來管理跨雲容器排程。 Docker去年10月預告,將會再下一個版本支援Kubernetes 2.

Python 3.7.2 和 3.6.8 版本正式釋出

   Python 3.7.2 和 3.6.8 現已正式釋出。 3.7.2 是 Python 3.7 的下一個維護版本,也是 Python 的最新功能版本。3.6.8 則是 Python 3.6 的下一個和最後一個 bug 修復版本。後續官方將提供 Python 3.

RDIFramework.NET ━ .NET快速資訊化系統開發框架 V3.2版本正式釋出

 RDIFramework.NET .NET快速資訊化系統開發框架 V3.2版本 正式釋出 精益求精求完美!   1、RDIFramework.NET框架介紹 RDIFramework.NET,基於.NET的快速資訊化系統開發、整合框架,為企業或RDIFramework.NET,基於.NET

Apache HBase 2.0.4 釋出,分散式資料庫

   Apache HBase 2.0.4 已釋出,HBase – Hadoop Database,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用 HBase 技術可在廉價 PC Server 上搭建起大規模結構化儲存叢集。 HBase 2.0.4 主要修復了

Oushu HAWQ++ 2.2.0版本釋出

Oushu HAWQ++ 2.2.0版本比Oushu HAWQ++ 2.1.1版本有如下新特性增強: 在csv和text檔案格式中增加了對非ASCII字串或長度大於1的字串作為分隔符的支援(2.1.1中只能支援單個ASCII字元作為分隔符)。涉及copy語句和c

spark 釋出 2.2.0版本

Apache Spark 2.2.0是2.x分支上的第三次主版本釋出,其他兩個版本分別2.0.x,2.1.x兩個主版本以及下屬的分支版本。這次釋出spark移除了Structured Streaming的實驗標籤。也就是說,這次釋出的版本的焦點在於其易用性、穩定性,並完善、

vue+.netcore可支援業務程式碼擴充套件的開發框架 VOL.Vue 2.0版本釋出

框架介紹 這是一個基於vue、element-ui、iview、.netcore3.1 可支援前端、後臺動態擴充套件業務程式碼快速開發框架。 框架內建定製開發的程式碼生成器,生成的程式碼不需要複製也不需要更改,直接就能執行。 後臺基於.netcore3.1、EntityFramework Core3.

特性速覽| Apache Hudi 0.5.3版本正式釋出

### 1. 下載連線 * 原始碼下載:[Apache Hudi 0.5.3 Source Release](https://downloads.apache.org/hudi/0.5.3/hudi-0.5.3.src.tgz) ([asc](https://downloads.apache.org/hud

iis重寫模塊實現程序自動二級域名,微軟提供的URL重寫2.0版本適用IIS以上

tar fig put 適用於 rec microsoft tle 完成後 規則 在iis7以後微軟提供了url重寫2.0版本,可以通過安裝重寫組件來實現。適用於iis7以上版本。 安裝有兩種方式可以選擇,一是下載安裝文件,二是通過“web平臺安裝程序&rdq

關於 roadhog 2.0 版本之後不支持 cssModulesExclude

src 框架 bubuko 9.png 目錄 解決問題 module 支持 img cssModulesExclude 是用於 cssModules模塊之後 ,解決不需要 cssModules 模塊的樣式文件, 了解 cssModules 看這裏 https://segme

《SpringBoot從入門到放棄》之第(十)篇——整合Redis(SpringBoot 2.0 版本),寫於2018年10月24號程式設計師節。

在 pom.xml 配置中新增 jar 依賴: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-d

輕量ORM-SqlRepoEx (十二)SqlRepoEx 2.0.1 至 2.2.0 版本更新說明

一、功能變化 (一)、強化特性支援 1、部分型別擁有複雜屬性; 2、有些屬性不是來源於資料庫 3、使用者在原來的程式碼中使用 SqlRepoEx ,減少欄位與資料庫欄位之間的衝突; 4、為支援新的特性及優化屬性讀寫,增加了 SimpleWritablePropertyMatche

http快取淺析及HttpCache使用方法 [ 2.0 版本 ]

1.學習理由:合理的利用http快取在對網站效能提升有非常巨大的作用,而且十分經濟實惠 2.http快取淺析 3.如何使用HttpCache來實現http快取 http快取淺析 1.當客戶端第一次訪問網站的時候,瀏覽器是沒有快取的,所以所有的資源都是從伺服器獲取的(會將css,js,圖片)等資源快取到客戶端

2.0版本中如何取得當前的控制器和方法

Nid tro pre var spa pan number 方法 variable 在 控制器 裏面 1 $controllerID = Yii::$app->controller->id; 2 $actionID = Yii::$app->contr

2135億!!!OceanBase 2.0版本支撐了今年雙11支付寶的核心鏈路!!

OB君:天貓“雙11”,你貢獻了多少?據統計,截止11月11日24點,2018天貓雙11全球狂歡節成交額超2135億元!每一次記錄的突破,都離不開雙11核心技術的全面開放。 瘋狂的天貓雙11已經以2135億元創紀錄成交額收官,支付寶系統在這場“商業奧運會”中再次經受住了考驗。螞蟻金服集團副CTO、