このトピックでは、HBase のストレージバックエンドとして JindoFileSystem (JindoFS) を使用する方法を説明します。
概要
Hadoop エコシステムでは、HBase はリアルタイムデータクエリに適した、書き込みパフォーマンスの高いデータベースです。 E-MapReduce V3.22.0 以降の HBase クラスターは、ストレージバックエンドとして JindoFS またはJindoFS ベースの OssFileSystem に対応しています。 Hadoop Distributed File System (HDFS) と比較すると、JindoFS および JindoFS ベースのOssFileSystem はより高い柔軟性を誇ります。
JindoFS の設定
たとえば、emr-jfs という名前の名前空間は、次の設定で作成されています。
- jfs.namespaces = emr-jfs
- jfs.namespaces.emr-jfs.uri = oss://oss-bucket/oss-dir
- jfs.namespaces.emr-jfs.mode = block
HBase クラスターの保存場所の指定
E-MapReduce V3.22.0 の JindoFS および JindoFS ベースのOssFileSystem は、データ同期に対応していません。 hbase-site ファイルの hbase.rootdir パラメーターを JindoFS または JindoFS ベースの OssFileSystem のディレクトリに設定し、hbase.wal.dir パラメーターを HDFS のローカルディレクトリに設定できます。 次に、HBase クラスターの HDFS を介して先読みログ (WAL) ファイルを保存できます。 HBase クラスターをリリースするには、まずテーブルを無効にし、WAL ファイルの更新が HFile に書き込まれていることを確認します。
設定ファイル | パラメーター | 説明 | 例 |
---|---|---|---|
hbase-site | hbase.rootdir | JindoFS の HBase クラスターのルートディレクトリ。 | jfs://emr-jfs/hbase-root-dir |
hbase.wal.dir | HBase クラスターが WAL ファイルを HDFS に格納するローカルディレクトリ。 | hdfs://emr-cluster/hbase |
E-MapReduce クラスターの作成
次の図のように、E-MapReduce クラスターの作成時にカスタム設定を追加できます。
JindoFS の使用方法
たとえば、HBase クラスターのストレージバックエンドとして JindoFS を使用するには、次のカスタム設定を使用して Object Storage Service (OSS) バケットと関連ディレクトリを置き換えます。
[
{
"ServiceName":"BIGBOOT",
"FileName":"bigboot",
"ConfigKey":"jfs.namespaces",
"ConfigValue":"emr-jfs"
},
{
"ServiceName":"BIGBOOT",
"FileName":"bigboot",
"ConfigKey":"jfs.namespaces.emr-jfs.uri",
"ConfigValue":"oss://oss-bucket/jindoFS"
},
{
"ServiceName":"BIGBOOT",
"FileName":"bigboot",
"ConfigKey":"jfs.namespaces.emr-jfs.mode",
"ConfigValue":"block"
},
{
"ServiceName":"HBASE",
"FileName":"hbase-site",
"ConfigKey":"hbase.rootdir",
"ConfigValue":"jfs://emr-jfs/hbase-root-dir"
},
{
"ServiceName":"HBASE",
"FileName":"hbase-site",
"ConfigKey":"hbase.wal.dir",
"ConfigValue":"hdfs://emr-cluster/hbase"
}
]