HBaseは、Hadoopエコシステムで高い書き込みパフォーマンスを提供するリアルタイムデータベースです。 OSS-HDFSはAlibaba Cloudによってリリースされたストレージサービスであり、HDFS APIと互換性があります。 JindoSDKを使用すると、HBaseは基になるストレージとしてOSS-HDFSを使用でき、ライトアヘッドロギング (WAL) ファイルのストレージをサポートします。 このようにして、コンピューティングリソースとストレージリソースが分離されます。 OSS-HDFSはローカルHDFSストレージよりも柔軟で、O&Mコストを削減できます。
前提条件
Elastic Compute Service (ECS) インスタンスが作成されました。 詳細については、「インスタンスの作成」をご参照ください。
Hadoop環境が作成されます。 Hadoopのインストール方法の詳細については、「手順2: Hadoopランタイム環境の作成」をご参照ください。
Apache HBaseがデプロイされました。 詳細については、「Apache HBase」をご参照ください。
バケットのOSS-HDFSが有効になり、OSS-HDFSにアクセスする権限が付与されます。 詳細については、「OSS-HDFSの有効化とアクセス許可の付与」をご参照ください。
手順
ECS インスタンスに接続します。 詳細については、「インスタンスへの接続」をご参照ください。
JindoSDKを設定します。
JindoSDK JARパッケージの最新バージョンをダウンロードします。 JindoSDKをダウンロードするには、 GitHubを実行します。
オプション。 Kerberos関連およびSASL関連の依存関係が環境に含まれていない場合は、JindoSDKがデプロイされているすべてのノードに次の依存関係をインストールします。
UbuntuまたはDebian
sudo apt-get install libkrb5-dev krb5-admin-server krb5-kdc krb5-user libsasl2-dev libsasl2-modules libsasl2-modules-gssapi-mit
Red Hat Enterprise LinuxまたはCentOS
sudo yum install krb5-server krb5-workstation cyrus-sasl-devel cyrus-sasl-gssapi cyrus-sasl-plain
macOS
brew install krb5
ダウンロードしたインストールパッケージを解凍します。
次のサンプルコードは、
jindosdk-x.x.x-linux.tar.gz
という名前のパッケージを解凍する方法の例を示しています。 別のバージョンのJindoSDKを使用する場合は、パッケージ名を対応するJARパッケージの名前に置き換えます。tar -zxvf jindosdk-x.x.x-linux.tar.gz -C /usr/lib
説明x.x.xは、JindoSDK JARパッケージのバージョン番号を示します。
設定
JINDOSDK_HOME
.エクスポートJINDOSDK_HOME=/usr/lib/jindosdk-x.x.x-linux export PATH=$JINDOSDK_HOME/bin:$PATH
設定
HADOOP_CLASSPATH
.export HADOOP_CLASSPATH=$HADOOP_CLASSPATH :${ JINDOSDK_HOME}/lib/*
重要パッケージのインストールディレクトリを指定し、必要なすべてのノードに環境変数を設定します。
ダウンロードしたJindoSDK JARパッケージをclasspathで指定されたパスにインストールします。
cp jindosdk-x.x.x-linux/lib/jindo-core-x.x.x.jar <HADOOP_HOME>/share/hadoop/hdfs/lib / cp jindosdk-x.x.x-linux/lib/jindo-sdk-x.x.x.jar <HADOOP_HOME>/share/hadoop/hdfs/lib/
バケットの実装クラスを設定し、OSS-HDFSへのアクセスに使用するAccessKeyペアを指定します。
HBaseのcore-site.xmlファイルにOSS-HDFSの実装クラスを設定します。
<configuration> <property> <name>fs.AbstractFileSystem.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOSS</value> </property> <property> <name>fs.oss.impl</name> <value>com.aliyun.jindodata.oss.JindoOssFileSystem</value> </property> </configuration>
では、core-site.xmlHBaseのファイルに、OSS-HDFSが有効になっているバケットへのアクセスに使用するAccessKey IDとAccessKey secretを指定します。
<configuration> <property> <name>fs.oss.accessKeyId</name> <value>LTAI ********</value> </property> <property> <name>fs.oss.accessKeySecret</name> <value>KZo1 ********</value> </property> </configuration>
OSS-HDFSのエンドポイントを設定します。
OSS-HDFSを使用してObject Storage Service (OSS) のバケットにアクセスする場合は、OSS-HDFSのエンドポイントを指定する必要があります。 OSS-HDFSへのアクセスに使用するパスは、
oss://<Bucket>.<Endpoint>/<Object>
形式 (例:oss:// examplebucket.cn-shanghai.oss-dls.aliyuncs.com/exampleobject.txt
) で設定することを推奨します。 アクセスパスを設定した後、JindoSDKはアクセスパスで指定されたエンドポイントに基づいて対応するOSS-HDFS操作を呼び出します。他の方法を使用してOSS-HDFSのエンドポイントを設定することもできます。 異なる方法を使用して構成されたエンドポイントの優先度は異なります。 詳細については、「付録1: OSS-HDFSのエンドポイントの設定に使用されるその他の方法」をご参照ください。
HBaseのストレージパスを指定します。
HBaseのデータファイルとWALファイルのストレージパスとしてOSSのパスを指定するには、hbase-site設定ファイルのhbase.rootdirパラメーターの値をOSSパスに変更する必要があります。 パスは
oss:// bucket.endpoint/hbase-root-dir
形式です。重要クラスターをリリースするには、テーブルを無効にし、WALファイルで実行されるすべての更新操作がHFilesに同期されていることを確認する必要があります。