HBase時間軸一致性:將寫入傳播到區(qū)域副本

2018-06-27 11:20 更新

將寫入傳播到區(qū)域副本

如上所述,在HBase時間軸一致性中,寫入只轉(zhuǎn)到主要區(qū)域副本。為了將寫入從主區(qū)域副本傳播到次區(qū)域,有兩種不同的機(jī)制。對于只讀表,您不需要使用以下任何方法。禁用和啟用表格應(yīng)使數(shù)據(jù)在所有區(qū)域副本中可用。對于可變的表,你必須僅使用下列機(jī)制之一:storefile刷新,或異步WAL復(fù)制。建議使用后者。

StoreFile復(fù)習(xí)

第一種機(jī)制是在HBase-1.0 +中引入的存儲文件刷新。存儲文件刷新是每個區(qū)域服務(wù)器的一個線程,該服務(wù)器定期運(yùn)行,并為輔助區(qū)域副本的主區(qū)域的存儲文件執(zhí)行刷新操作。如果啟用,刷新器將確保次要區(qū)域副本及時查看來自主要區(qū)域的新刷新,壓縮或批量加載的文件。但是,這意味著只有刷新的數(shù)據(jù)可以從輔助區(qū)域副本讀取,并且在刷新完成后,使輔助數(shù)據(jù)在較長的時間內(nèi)落后于主數(shù)據(jù)庫。

要打開此功能,您應(yīng)該將hbase.regionserver.storefile.refresh.period配置為非零值。參見下面的配置部分。

Asnyc WAL復(fù)制

寫入副本的第二種機(jī)制是通過“異步WAL復(fù)制”功能完成的,并且僅在HBase-1.1 +中可用。這與HBase的多數(shù)據(jù)中心復(fù)制類似,但是來自區(qū)域的數(shù)據(jù)被復(fù)制到次要區(qū)域。每個輔助副本總是按照主區(qū)域提交的順序接收和觀察寫入。從某種意義上說,這種設(shè)計可以被認(rèn)為是“群集內(nèi)復(fù)制”,不是將數(shù)據(jù)復(fù)制到不同的數(shù)據(jù)中心,而是將數(shù)據(jù)轉(zhuǎn)移到次要區(qū)域,以保持次區(qū)域的內(nèi)存中狀態(tài)是最新的。數(shù)據(jù)文件在主區(qū)域和其他副本之間共享,因此沒有額外的存儲開銷。但是,次要區(qū)域的內(nèi)存中會有近期未刷新的數(shù)據(jù),這增加了內(nèi)存開銷。主要區(qū)域也將清除,壓縮和批量加載事件寫入其WAL,這些事件也通過wal復(fù)制復(fù)制到輔助節(jié)點(diǎn)。當(dāng)他們觀察到刷新/壓實或批量加載事件時,次要區(qū)域重放該事件以拾取新文件并丟棄舊文件。

以與主服務(wù)器相同的順序提交寫入操作可確保次服務(wù)器不會偏離主要區(qū)域數(shù)據(jù),但由于日志復(fù)制是異步的,因此數(shù)據(jù)在次要區(qū)域中可能仍舊過時。由于此功能可用作復(fù)制端點(diǎn),因此預(yù)計性能和延遲特征與群集間復(fù)制類似。

異步WAL復(fù)制默認(rèn)是禁用的。您可以通過設(shè)置hbase.region.replica.replication.enabled為true來啟用此功能。當(dāng)您首次創(chuàng)建區(qū)域復(fù)制>1的表時,Asyn WAL復(fù)制功能將添加一個名為region_replica_replication復(fù)制對等點(diǎn)的新復(fù)制對等點(diǎn)。啟用后,如果要禁用此功能,則需要執(zhí)行兩項操作:(1)將配置屬性hbase.region.replica.replication.enabled設(shè)置為false hbase-site.xml(請參見下面的配置部分);(2)使用hbase shell或Adminclass禁用集群中指定的復(fù)制對等點(diǎn)region_replica_replication:

hbase> disable_peer 'region_replica_replication'
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號