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