翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
HBase の以前のバージョンからの移行
HBase の以前のバージョンからデータを移行するには、Apache HBase リファレンスガイドの「Upgrading
Amazon EMR バージョン 7.4.0 以降への移行
注記
7.4.0 より前の EMR リリースから 7.3.0 より大きいリリースに移行する場合は、このガイドラインに従ってください。
Amazon のストアファイル追跡機能が有効になっている EMR バージョンを現在実行していて、バージョン 6.2.0〜7.3.0 に含まれている場合、7.3.0 以降の EMR バージョンで利用可能な OSS ストアファイル追跡を使用するバージョンにアップグレードするには、以下のステップに従います:
既存のクラスターの場合:
hbase:storefileテーブルを無効にします。hbase:storefileテーブルをドロップします。hbase:metaをフラッシュします。メタデータが更新されるまで待ちます。
新しいクラスターで:
ルートディレクトリと同じ Amazon S3 ディレクトリを設定します。
DefaultStoreFileTracker実装でクラスターを起動します:{ "Classification": "hbase-site", "Properties": { hbase.store.file-tracker.impl: "org.apache.hadoop.hbase.regionserver.storefiletracker.DefaultStoreFileTracker" } }テーブルまたは列ファミリーレベルで、以下のコマンドを使用してストアファイルトラッカーを変更します:
テーブルの、またはテーブル列ファミリーの Store File Tracker を変更します:
hbase> change_sft 't1','FILE' hbase> change_sft 't2','cf1','FILE'指定された正規表現 (regex) と一致するテーブルのすべての Store File Tracker を変更します。
hbase> change_sft_all 't.*','FILE' hbase> change_sft_all 'ns:.*','FILE' hbase> change_sft_all 'ns:t.*','FILE'
Read-Replica クラスターを使用して Amazon S3 クラスターの HBase を Amazon EMR バージョン 7.12.0 以降に移行する
EMR 7.12.0 以降では、Amazon S3 クラスターのリードレプリカ HBase を読み取り専用モードからアクティブモードに切り替えて、読み取りオペレーションと書き込みオペレーションの両方を有効にできます。この機能は、2 つの新しい HBase シェルコマンドを通じて提供されます。
readonly_stateクラスターの現在の読み取り/書き込みオペレーション状態を取得します。
出力:
INACTIVE - クラスターは読み取り専用モードで、書き込みは非アクティブです。
ACTIVE - クラスターは読み取りオペレーションと書き込みオペレーションの両方をサポートします。
readonly_switch切り替えプロセスの設定可能なオプションを使用して、読み取り専用モードを有効または無効にします。
構文:
readonly_switch <readonly>,<force_flush>,<force_refresh_meta>,<force_refresh_hfile>パラメータ :
readonly (必須) - 読み取り専用モードを有効 (true) または無効にする (false) ブール値
force_flush (オプション) - アクティブモードから読み取り専用モードに切り替える前にデータを強制的にフラッシュします (デフォルト: true)
force_refresh_meta (オプション) - 読み取り専用モードからアクティブモードに切り替えるときにメタテーブルの更新を強制します (デフォルト: true)
force_refresh_hfile (オプション) - 読み取り専用モードからアクティブモードに切り替えるときに HFile の更新を強制します (デフォルト: true)
移行手順
現在 Amazon S3 クラスターで EMR 6.0.0+ HBase を実行していて、EMR 7.12.0 以降のクラスターに移行する場合は、次の手順に従います。
HBase マスター UI の hbck レポートまたはスタックプロシージャを使用して、ソースクラスターが不整合のない安定した状態であることを確認します。
sudo -u hbase hbase hbck > hbck_report.txtソースクラスターに SPLIT 状態のリージョンがないことを確認します。
SPLIT 状態のリージョンがある場合は、それぞれのテーブルでメジャー圧縮を実行し、完了するのを待ちます。
major_compact <table_name>圧縮の完了後に
catalogjanitor_runHBase シェルで を実行する
ソースクラスターと同じ Amazon S3 の場所を指すリードレプリカとして設定された新しい EMR 7.12.0+ クラスターを作成します。リードレプリカクラスターの設定方法の詳細については、このブログ
を参照してください。OSS Store ファイル追跡にアップグレードする場合は、上記のステップで説明した DefaultStoreFileTracker 設定で新しいクラスターを起動します。 マスターノードが完全に初期化されるまで待ちます。テーブルを読み取ってデータアクセシビリティを検証し、新しいクラスターが読み取り専用モードであることを確認します。
hbase:001:0> readonly_state Took 0.4612 seconds => "INACTIVE"ソースクラスターのバランシングと圧縮を無効にします。
echo "balance_switch false" | hbase shell echo "compaction_switch false" | hbase shellリードレプリカクラスター UI に重複/不整合が表示されていないことを確認し、リージョンが OPEN ステータスを示し、適切に割り当てられていることを確認します。
FileBasedTracker に変更する場合は、上記のセクションで説明したリードレプリカクラスターのコマンドを使用してストアファイルの追跡を変換します。
ソースクラスターを指すジョブを停止し、すべてのテーブルをフラッシュして、ソースクラスターをシャットダウンします。続行する前に、完全な終了を待ちます。
echo "flush 'usertable'" | hbase shell echo "flush 'hbase:meta'" | hbase shell echo "flush 'hbase:namespace'" | hbase shellリードレプリカクラスターをアクティブモードに切り替えて、書き込みオペレーションを有効にします。このステップを完了すると、新しいクラスターは読み取りオペレーションと書き込みオペレーションの両方をサポートし、移行は完了します。
hbase:010:0> readonly_switch false Took 38.1568 seconds新しいクラスターの書き込みを検証し、すべてのリージョンがリクエストを処理していることを確認します。
注記
任意の時点で Amazon S3 の場所を指すアクティブなクラスターは 1 つだけです。したがって、リードレプリカをアクティブに切り替えるのは、ソースクラスターが終了した後のみです。