DataServing クラスターの HBase データを OSS-HDFS に保存することで、コンピューティングとストレージを分離できます。先行書き込みログ (WAL) データは HDFS に残ります。
背景
OSS-HDFS は、統一されたメタデータ管理、完全な HDFS API 互換性、および包括的な POSIX サポートを備えた、クラウドネイティブのデータレイクストレージサービスです。データレイクアーキテクチャにおけるビッグデータおよび AI コンピューティングシナリオに適しています。詳細については、「OSS-HDFS とは」をご参照ください。
次の図は、OSS-HDFS 上の HBase のアーキテクチャを示しています。
制限事項
E-MapReduce 3.42 以降、または E-MapReduce 5.8.0 以降を実行している DataServing クラスターでのみサポートされています。
手順
-
OSS-HDFS を有効にし、必要なアクセス権限を付与します。詳細については、「OSS-HDFS を有効にしてアクセス権限を付与する」をご参照ください。
-
OSS-HDFS サービスエンドポイントの取得
OSS コンソールで、Overview ページに移動して OSS-HDFS サービスのエンドポイントをコピーし、E-MapReduce HBase クラスターの作成時にそのエンドポイントを hbase.rootdir パラメーターのパスとして使用します。

-
OSS-HDFS を使用します。
-
DataServing クラスターを作成します。詳細については、「クラスターの作成」をご参照ください。
DataServing クラスターを作成する際に、次のパラメーターを設定します:-
Optional Services:JindoData と Phoenix を除くすべてのサービスを選択します。
-
HBase Storage Mode:[OSS-HDFS] を選択します。
-
[Root Directory]: HDFS サービスが有効になっている OSS バケットを oss://${OSS-HDFS_ENDPOINT}/${DIR} 形式で指定します。 例: oss://test_bucket.cn-hangzhou.oss-dls.aliyuncs.com/hbase。
説明次のプレースホルダーを置き換えてください:
-
${OSS-HDFS_ENDPOINT}:手順 2 で取得した OSS-HDFS エンドポイント。
-
${DIR}:HBase のルートディレクトリ。
-
-
HBase テーブルを作成します。
-
DataServing クラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
-
次のコマンドを実行して HBase シェルを起動します:
hbase shell -
次のコマンドを実行して、テストテーブル
barを、列ファミリーfで作成します:create 'bar','f'テーブルを作成した後、
listコマンドを実行してテーブルを表示できます。出力例:
TABLE bar 1 row(s) Took 0.0138 seconds
-
-
HBase シェルを終了し、次のコマンドを実行して、テーブルデータが OSS-HDFS に保存されていることを確認します。
構文:
hadoop fs -ls oss://${OSS-HDFS_ENDPOINT}/${DIR}例:
hadoop fs -ls oss://test_bucket.cn-hangzhou.oss-dls.aliyuncs.com/hbase/data/default次のような出力は、HBase テーブルのディレクトリが OSS-HDFS に作成されたことを示します:
Found 1 items drwxrwxrwx - hbase supergroup 0 2022-07-28 14:45 oss://test_bucket.cn-hangzhou.oss-dls.aliyuncs.com/hbase/data/default/bar
-
-
任意: クラスターを終了して復元する。
OSS-HDFS はコンピューティングとストレージを分離するため、元のクラスターを終了し、同じ OSS-HDFS ディレクトリから同じデータを読み取る新しいクラスターを作成できます。
重要-
新しいクラスターと元のクラスターは、同じバージョンの HBase を使用する必要があります。バージョンの不一致は、予期せぬ互換性の問題を引き起こし、新しいクラスターが使用できなくなる可能性があります。

-
複数のクラスターから同時に書き込みを行うと、メタデータまたはデータの不整合を引き起こし、データが破損してクラスターが利用できなくなる可能性があります。
-
DataServing クラスターにログインします。詳細については、「クラスターにログインする」をご参照ください。
-
HBase シェルを起動します。
hbase shell -
flushコマンドを実行して、テーブルのすべてのインメモリデータを HFile に書き込みます。flush 'bar' -
テーブルで
disableコマンドを実行し、新しいデータの書き込みを禁止します。disable 'bar' -
新しいクラスターを作成します。そのクラスターが元のクラスターと同じ HBase バージョンであることを確認し、ストレージバックエンドとして同じ OSS-HDFS ディレクトリを使用するように設定します。

新しいクラスターは OSS-HDFS からデータを自動的に復元し、使用できる状態になります。
-