OBKV-HBaseはHBase 1.x/2.xとの互換性をサポートしています。本記事では、設定ファイルを変更するだけで、業務コードをHBaseクライアントからOBKV-HBaseクライアントに移行する方法について説明します。
前提条件
OMSによる構造移行を行っておらず、かつOBServerにおいて元のクライアントコードに対応するテーブルが作成されていない場合は、OBKV-HBase Javaクライアントを使用してクラスタに接続する を参照して、対応するOBKV-HBaseテーブルを作成してください。
コードの移行
OBKV-HBaseクライアントの依存関係の追加
プロジェクトのpom.xmlファイルにOBKV-HBaseクライアントの依存関係を追加します。以前HBase 1.xバージョンを使用していた場合は、対応するOBKV-HBase 1.x.xを使用します。以前HBase 2.xバージョンを使用していた場合は、対応するOBKV-HBase 2.x.xバージョンを使用します。
<dependencies>
<dependency>
<groupId>com.oceanbase</groupId>
<artifactId>obkv-hbase-client</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
注意
- できるだけ最新版のJARパッケージを使用してください。古いバージョンのJARパッケージは新しいバージョンのサーバーをサポートしていない可能性があります。
- ここに記載されているバージョン番号が最新ではない場合があります。Central Repositoryで公開されているOBKV-HBaseのバージョンを参照し、バージョン番号を最新の公開バージョン番号に置き換えてください。
OBKV-HBaseクライアント接続パラメータの設定
この手順では、OBKV-HBaseクライアントの設定ファイルにおいて、ConnectionタイプをOHConnectionImplに設定し、OBKV-HBase接続関連パラメータを追加する必要があります。
- 現在のHBaseクライアントがorg.apache.hadoop.hbase.HBaseConfigurationを使用している場合は、設定ファイル
hbase-site.xmlを修正します。 - 現在のHBaseクライアントがorg.apache.hadoop.conf.Configurationを使用している場合は、設定ファイル
core-site.xmlを修正します。
Connectionタイプの変更
HBase Connectionの実装をOHConnectionImplに変更します。その後、ConnectionFactoryを使用して作成される接続はすべてOHConnectionImplとなります。
<configuration>
<property>
<name>hbase.client.connection.impl</name>
<value>com.alipay.oceanbase.hbase.util.OHConnectionImpl</value>
</property>
</configuration>
OBKV-HBaseクライアント接続パラメータの追加
この手順では、OBKV-HBaseの接続パラメータを追加してOHConnectionImplを初期化する必要があります。ここではODPモードを例に説明します(直接接続モードでは設定が異なります)。パラメータの詳細については、OBKV-HBaseクライアントを使用したクラスタへの接続 のクラウドモードの設定(パブリッククラウド)および 直接接続モードの設定 (プライベートデプロイメント) のセクションを参照してください。
<configuration>
<property>
<name>hbase.oceanbase.fullUserName</name>
<value>your user name</value>
</property>
<property>
<name>hbase.oceanbase.password</name>
<value>your user password</value>
</property>
<property>
<name>hbase.oceanbase.odpAddr</name>
<value>your odp addr</value>
</property>
<property>
<name>hbase.oceanbase.odpPort</name>
<value>3307</value>
</property>
<property>
<name>hbase.oceanbase.odpMode</name>
<value>true</value>
</property>
<property>
<name>hbase.oceanbase.database</name>
<value>your database</value>
</property>
</configuration>