0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Azure HDInsight HBase クラスターにおけるレプリケーション

Posted at

はじめに

Azure HDInsight では Hbase クラスターを構築でき、クラスター間でデータをコピーするレプリケーション機能が存在します。

今回、レプリケーション元を クラスターA、レプリケーション先を クラスターB とし、実際の手順を説明していきます。

検証環境は HBase 2.4 (HDI 5.1) となります。

有効化の手順

1. クラスターA における HBase テーブルの作成

NSG インバウンドでアクセス元 IP を許可したうえで、クラスターA に SSH します。
以下のコマンドを実行して HBase テーブル作成とデータ投入を行います。

$ hbase shell

> create 'test_table', 'cf'

> put 'test_table', 'row1', 'cf:col1', 'value1'

> list
TABLE
test_table 

> get 'test_table', 'row1'
COLUMN  CELL
cf:col1  timestamp=2024-11-15T02:24:52.806, value=value1 

2. クラスターA におけるスクリプトアクションの実行

Azure Portal の HDInsight 画面にてスクリプトアクションを実行します。

項目 備考
Script Type - Custom
Name Enable Replication 任意の値で問題ないです
Bash script URI https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_enable_replication.sh
Node type(s) Head
Parameters -m hn0 -s <クラスターA> -d <クラスターB> -su admin -du admin -sp <パスワード> -dp <パスワード> -copydata パスワードに $ などの記号が含まれる場合、ダブルクォーテーションで囲んだうえで記号前にバックスラッシュを入れる必要があります

スクリプトアクションはパラメータ -m で指定したノードで実行され、その際 <クラスターA>.azurehdinsight.net および <クラスターB>.azurehdinsight.net へのアクセスが発生します。

プライベートエンドポイントを経由しない場合は、各クラスターが所属するサブネットの NSG インバウンドに -m で指定したノードのグローバル IP を HTTPS で許可しておく必要があります。

3. レプリケーション有効化の確認

NSG インバウンドでアクセス元 IP を許可したうえで、クラスターB に SSH します。
以下のコマンドを実行して HBase テーブルがレプリケートされたことを確認します。

$ hbase shell

> list
TABLE
test_table 

> get 'test_table', 'row1'
COLUMN  CELL
cf:col1  timestamp=2024-11-15T02:24:52.806, value=value1

また、クラスターA において、以下のコマンドでデータを追加します。

$ hbase shell

> put 'test_table', 'row1', 'cf:col2', 'value2'

すると、クラスターB において、追加されたデータを参照できます。

$ hbase shell

> get 'test_table', 'row1'
COLUMN  CELL 
cf:col1  timestamp=2024-11-15T02:24:52.806, value=value1
cf:col2  timestamp=2024-11-15T02:58:52.787, value=value2

無効化の手順

1. クラスターA におけるスクリプトアクションの実行

Azure Portal の HDInsight 画面にてスクリプトアクションを実行します。

項目 備考
Script Type - Custom
Name Disable Replication 任意の値で問題ないです
Bash script URI https://raw.githubusercontent.com/Azure/hbase-utils/master/replication/hdi_disable_replication.sh
Node type(s) Head
Parameters -m hn0 -s <クラスターA> -su admin -sp <パスワード> -all パスワードに $ などの記号が含まれる場合、ダブルクォーテーションで囲んだうえで記号前にバックスラッシュを入れる必要があります

2. レプリケーション無効化の確認

クラスターA において、以下のコマンドでデータを追加します。

$ hbase shell

> put 'test_table', 'row1', 'cf:col3', 'value3'

すると、クラスターB において、データが追加されていないことを確認できます。

$ hbase shell

> get 'test_table', 'row1'
COLUMN  CELL
cf:col1  timestamp=2024-11-15T02:24:52.806, value=value1
cf:col2  timestamp=2024-11-15T02:58:52.787, value=value2

おわりに

Azure HDInsight Hbase クラスターにおけるレプリケーション手順を確認しました。

スクリプトアクションのログは、下図のように Ambari UI の Background Operations から確認できます。デバッグの際には利用しましょう。

image.png

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?