HBaseのData保存先をAmazonS3にする
提供: LunaBiblos
目次 |
概要
HbaseのDataのData保存先としてAmazonS3を利用します。
保存先として設定する事は出来ますが、S3側が結果整合性を採用している為、正しいDataが正常に取得出来ずHBaseが正常に動作しない現象が確認されて居る為、非推奨な動作と成っています。
作業概要
/tmp以下が小さいので、/mnt以下をetcにMountします。続いてhbase-site.xmlにAmazonS3接続用に設定を追加し、S3接続に必要なJarを追加してHbaseを起動します。
/mntのBind
/mntを/tmpとして利用する為にBindを行います。Bindがきちんと行えた事を確認する為に「1」というFileをおいておきます。Bindした後、/mnt以下に[1]というFileがあればBind成功です。
cd /mnt touch 1 cd / mount --bind /mnt /tmp cd /tmp ls -al
XMLの編集
hbase-site.xml中の設定項目「hbase.rootdir」にAmazonS3の保存先を指定します。今回はS3の直下にhbaseDirというDirectoryを作りそこにDataを保存します。
続いてfs.s3.awsAccessKeyIdとfs.s3.awsSecretAccessKeyを設定します。
これらの値はWASにLoginした後、Access Identifiersにて表示されるAccess Key IDとSecret Access Keyを入力してください。
| 設定項目名 | 設定値 | 説明 |
|---|---|---|
| hbase.rootdir | s3://hbasedir/ | AmazonS3上の保存先Directoryの指定です。 |
| hbase.tmp.dir | /mnt/hbase-${user.name} | HBaseの一次処理領域です。大きくなりがちなので/mnt以下に変更しました。 必須ではありません。 |
| fs.s3.awsAccessKeyId | AWSのAccess Key IDを入力します。 | |
| fs.s3.awsSecretAccessKey | AWSのSecret Access Key IDを入力します。 |
<configuration>
<property>
<name>hbase.rootdir</name>
<value>s3://hbasedir/</value>
<description></description>
</property>
<property>
<name>fs.s3.awsAccessKeyId</name>
<value>${HOGE}</value>
</property>
<property>
<name>fs.s3.awsSecretAccessKey</name>
<value>${FUGA}<value>
</property>
</configuration>
追加Libraryの準備
上記WebからそれぞれファイルをDownloadして
- commons-codec-1.4.jar
- jets3t-0.7.1.jar
のJARを取得します。取得したJARをhbaseのLibraryに配置します。
/home/${HBASE_DIR}/hbase-0.20.2/lib
/home/hbase/hbase-0.20.2/lib
Hbaseの起動
上記設定が終わったら通常通りHBaseを起動してください。なお、Cluster環境を作る場合は上記設定に加えてHbaseの構築 に説明のある分散環境構築用の設定を追加し、HBaseを起動してください。