本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Amazon EMR 的預先寫入日誌 (WAL)
使用 Amazon EMR 6.15 及更高版本,您可以將 Apache HBase 預先寫入日誌 (WAL) 寫入 Amazon EMR WAL。使用較低的 Amazon EMR 版本,當您使用 HBase on Amazon S3 選項建立叢集時,WAL 是唯一存放在叢集本機磁碟中的 Apache HBase 元件,而且您可以在 Amazon S3 上存放其他元件,例如根目錄、儲存檔案 (HFiles)、資料表中繼資料和資料。
您可以使用 Amazon EMR WAL 來復原未排清至 Amazon S3 的資料。若要完全備份 HBase 叢集,請選擇使用 Amazon EMR WAL 服務。在幕後, 會將您的 HBase 預先寫入日誌 (WAL) RegionServer
寫入 Amazon EMR 的 WAL。
如果您的叢集或可用區域運作狀態不佳或無法使用,您可以建立新的叢集,將其指向相同的 S3 根目錄和 Amazon EMR WAL 工作區,並在幾分鐘內自動復原 WAL 中的資料。如需詳細資訊,請參閱從 Amazon EMR WAL 還原。
從 Amazon EMR 7.3.0 版及更高版本開始,Amazon EMR 會為每個伺服器建立多個 EMR WALs並將多個 HBase 區域分組為一個 Amazon EMR WAL。這樣做可增強 Apache HBase WAL,以改善日誌使用率並最佳化成本。若要設定每個 HBase 的 Amazon EMR WAL 執行個體數量RegionServer
,請使用 參數 hbase.wal.regiongrouping.numgroups
。根據預設,此參數設定為 2。沒有任何 WAL 群組包含兩個系統資料表:中繼和主存放區。這些資料表一律使用自己的個別 WALs。
如果您執行的版本低於 Amazon EMR 7.3.0,建議您手動停用舊 HBase 叢集中的資料表,以確保 Amazon EMR WAL 中的所有資料都會排清至 Amazon S3。然後,刪除舊的 Amazon EMR WAL、終止舊叢集,並設定執行最新版本的新叢集。如果您遇到問題且無法停用舊叢集上的資料表,您可以直接終止舊叢集,並在新叢集上將 emr.wal.multiplex.migrate
設定為 true
。如果設為 true,HBase 將在 HBase 區域初始化期間嘗試從舊 Amazon EMR WAL 執行個體重新播放資料,並在重新播放後刪除舊 WALs。此重播程序會產生讀取的額外成本。遷移後,建議您設定叢集,並將 emr.wal.multiplex.migrate
設定為 false
。或者,您可以移除 參數以加速 HBase 區域初始化。
注意
HBase 清除資料後,Amazon EMR WAL 會將其刪除。如果 HBase 未排清資料,Amazon EMR WAL 會將資料保留最多 30 天。30 天後,Amazon EMR WAL 會自動刪除資料。Amazon EMR 會在您終止 EMR 叢集後,將 WAL 執行個體保留最多 30 天。不過,如果您在這 30 天內從相同的 S3 根目錄啟動新的啟用 WAL 的叢集,Amazon EMR 不會刪除先前叢集中的任何 WAL 執行個體。如需詳細資訊,請參閱從 Amazon EMR WAL 還原。
下列各節說明如何設定並使用 Amazon EMR WAL 搭配啟用 HBase 的 EMR 叢集。