このトピックでは、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 クラスターの作成時にカスタム設定を追加できます。

config_sel

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"
  }
]