W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
HBase 有兩種版本控制方案,分別是:pre-1.0 和 post-1.0。在本節(jié)內(nèi)容中將作出詳細(xì)的說明。
從 1.0.0 版本開始,HBase 正在致力于 Semantic Versioning 的發(fā)布版本。綜上所述:
對于給定的版本號 MAJOR.MINOR.PATCH,增加如下內(nèi)容:
兼容性維度:
除了通常的 API 版本考慮之外,HBase 還有其他需要考慮的兼容性維度。
Client-Server 線協(xié)議兼容性:
Server-Server 協(xié)議兼容性:
文件格式兼容性:
客戶端 API 兼容性:
客戶端二進(jìn)制兼容性:
服務(wù)器端有限的 API 兼容性(取自 Hadoop):
相關(guān)性兼容性:
操作兼容性:
概要
以下是兼容性矩陣列表:
Major
|
Minor
|
Patch
|
|
客戶端 - 服務(wù)器線路兼容性 |
不兼容 |
兼容
|
兼容
|
服務(wù)器 - 服務(wù)器兼容性 |
不兼容
|
兼容 |
兼容
|
文件格式兼容性 |
不兼容
|
兼容
|
兼容
|
客戶端API兼容性 |
不兼容
|
兼容
|
兼容
|
客戶端二進(jìn)制兼容性 |
不兼容
|
不兼容
|
兼容
|
服務(wù)器端有限的API兼容性 |
|||
穩(wěn)定性(Stable) |
不兼容
|
兼容
|
兼容
|
發(fā)展性(Evolving) |
不兼容
|
不兼容
|
兼容
|
不穩(wěn)定性(Unstable) |
不兼容
|
不兼容
|
不兼容
|
相關(guān)性兼容性 |
不兼容
|
兼容
|
兼容
|
操作兼容性 |
不兼容
|
不兼容
|
兼容 |
HBase 有很多 API 要點,但對于上面的兼容性矩陣,我們區(qū)分了Client API(客戶端 API),Limited Private API(有限的私有 API)和 Private API(私有 API)。
請記住 HBase 項目中 InterfaceAudience 注釋和 InterfaceStability 注釋之間的以下相互作用:
HBase 客戶端 API 由所有標(biāo)記有 InterfaceAudience.Public 接口的類或方法組成。hbase-client 和依賴模塊中的所有主類都有InterfaceAudience.Public,InterfaceAudience.LimitedPrivate或InterfaceAudience.Private標(biāo)記。并非所有其他模塊(hbase-server等)中的類都有標(biāo)記。如果一個類沒有使用上述中的一個注釋,則它被認(rèn)為是一個InterfaceAudience.Private類。
LimitedPrivate 注釋為接口附帶了一組目標(biāo)使用者。這些使用者是協(xié)處理器,phoenix,復(fù)制端點實現(xiàn)等。此時,HBase 只能保證修補程序版本之間的這些接口的源和二進(jìn)制兼容性。
所有使用InterfaceAudience.Private注釋的類或沒有注釋的所有類僅在HBase內(nèi)部使用。接口和方法簽名可以隨時改變。如果您依賴于標(biāo)記為Private的特定界面,則應(yīng)打開jira以建議將界面更改為Public或LimitedPrivate,或者為此目的公開的接口。
HBase Pre-1.0 版本都是 EOM:對于新的安裝,請勿部署:0.94.y、0.96.y 或 0.98.y,應(yīng)該部署穩(wěn)定的版本。
在語義版本化方案 pre-1.0 之前,HBase 追隨 Hadoop 的 0.2x 或 0.9x 版本。
二進(jìn)制兼容性:
當(dāng)我們說兩個 HBase 版本是兼容的時,我們的意思是這些版本是線(wire)和二進(jìn)制兼容的。兼容的HBase版本意味著客戶可以與兼容但不同版本的服務(wù)器通話。這也意味著你可以換出一個版本的 jar,并用另一個兼容版本的 jar 替換它們,所有的 jar 都可以工作。除非另有說明,否則 HBase 主要的版本都是二進(jìn)制兼容的。您可以安全地在二進(jìn)制兼容版本之間進(jìn)行滾動升級。
滾動升級是您一次更新服務(wù)器群集中的服務(wù)器的過程。如果它們是二進(jìn)制或線路兼容的,則可以跨 HBase 版本進(jìn)行滾動升級。粗略地說,滾動升級是正常地停止每臺服務(wù)器,更新軟件,然后重新啟動。您可以為集群中的每個服務(wù)器執(zhí)行此操作。通常先升級 Master,然后再升級 RegionServers。
例如,下面的 HBase 是 symlinked 實際的 HBase 安裝。在升級之前,在群集上運行滾動重啟之前,我們將 symlink 更改為指向新的 HBase 軟件版本,然后運行:
$ HADOOP_HOME=~/hadoop-2.6.0-CRC-SNAPSHOT ~/hbase/bin/rolling-restart.sh --config ~/conf_hbase
滾動重新啟動腳本將首先正常停止并重新啟動主服務(wù)器,然后依次重新啟動每個 RegionServer。由于 symlink 被更改,所以重新啟動時,服務(wù)器將使用新的HBase 版本。隨著滾動升級的進(jìn)行,檢查日志中是否有錯誤。
在兼容二進(jìn)制/Wire的版本之間進(jìn)行滾動升級:
除非另有說明,否則 HBase 指向的版本是二進(jìn)制兼容的。您可以在 HBase 主要版本之間進(jìn)行滾動升級。例如,您可以通過在集群中進(jìn)行滾動升級,使用0.94.6二進(jìn)制文件替換0.94.5二進(jìn)制文件,從而從 0.94.5 轉(zhuǎn)到 0.94.6。
在次要(minor)版本中,我們調(diào)用的版本是有線/協(xié)議兼容的,在這種情況下,也可以執(zhí)行滾動升級。例如,在從 0.98.x 升級到 HBase 1.0.0 時,我們聲明可以在 hbase-0.98.x 和 hbase-1.0.0 之間進(jìn)行滾動升級。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: