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 パラメーターのパスとして使用します。
バケットの [Access Domain] パネルで、[HDFS Service] 行を見つけます。バケットエンドポイントの形式は
<BucketName>.cn-hangzhou.oss-dls.aliyuncs.comです。このエンドポイントをコピーします。 -
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 Shell を起動します。
hbase shell -
カラムファミリー
fを持つテストテーブルbarを作成するには、次のコマンドを実行します。create 'bar','f'テーブルを作成した後、
listコマンドを実行してテーブルの一覧を表示できます。出力例:
TABLE bar 1 row(s) Took 0.0138 seconds
-
-
HBase Shell を終了し、次のコマンドを実行して、テーブルデータが 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 を使用する必要があります。バージョンが一致しない場合、予期せぬ互換性の問題が発生し、新しいクラスターが使用できなくなる可能性があります。
Optional Services セクションで、[HBASE (2.3.4)] を選択します。
-
複数のクラスターから同時に書き込みを行うと、メタデータまたはデータの不整合が発生し、データが破損して、クラスターが使用できなくなる可能性があります。
-
DataServing クラスターにログインします。詳細については、「クラスターへのログイン」をご参照ください。
-
HBase Shell を起動します。
hbase shell -
flushコマンドを実行して、テーブルのすべてのインメモリデータを HFile に書き込みます。flush 'bar' -
テーブルに対して
disableコマンドを実行して、新しいデータの書き込みを防ぎます。disable 'bar' -
新しいクラスターを作成します。元のクラスターと同じ HBase バージョンであることを確認し、ストレージバックエンドとして同じ OSS-HDFS ディレクトリを使用するように設定します。
新しいクラスターは OSS-HDFS からデータを自動的に復元し、使用できる状態になります。
-