リアルタイム分析を実現するApache Hive/LLAP~保護のためのテクニック その1


はじめに

Apacheの数あるプロジェクトの中にHiveがあります。HiveはHadoopにSQLクエリを投げる仕組みであり、従来のバッチ系分析に加え、LLAP機能を経由してリアルタイム分析や処理基盤のバックボーンとして使われることが増えています。以前であればこれらは事前処理データを持っていることや場合によってはデータサイズが大きすぎることから保護の仕組みは敬遠されていましたが、組織の中でストリームラインデータが増えたり、LOB(Line Of Business)の方がクリティカルなデータを扱うようになった結果、その保護も必須のものになりつつあります。

アプリケーション

例えばApache Hiveはこのようなアプリケーションで使用されます。
-Tableau
-ElasticSearch
-Cognos
-Infomatica
-Qlik
-SAP Business Objects
-Custom Application

Hiveにはmetastoreというコンポーネントがありメタストアにはテーブルとテーブル構築の基礎となるデータ (パーティション名やデータタイプなど) が含まれています。つまり、HDFSだけでなくmetastoreを保護しなければその環境を担保することはできません。

Cloudera HadoopとHiveメタストアのバックアップ

NetBackupにはPostgreSQL向けエージェントが用意されていれていますが、今回はそれを使わないやり方です。

PostgreSQLデータベースをバックアップする方法は埋め込みデータベースまたは外部データベースのどちらの場合も手順は同じです。

  1. Cloudera Manager サーバーがインストールされているホストにログオンします。
  2. Cloudera Manager データベースの名前、ユーザー、およびパスワードのプロパティを次の方法から取得します。
/etc/cloudera-scm-server/db.properties
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm 
com.cloudera.cmf.db.password=NnYfWIjlbk 

3.前の手順のパラメーターを使用して、次のコマンドを root として実行します。

pg dump -h host -p 7432 -U scm > /tmp/scm_server_db_backup.$(date +%Y%m%d) 

4.ステップ 2 のプロパティcom.cloudera.cmf.db.からパスワードを入力します。

5.次にローカルホストで次のコマンドを実行します。ロールユーザーはこちら説明されているロールの 1 つを用いてデータベースをバックアップする必要があります。Creating Databases for Activity Monitor, Reports Manager, Hive Metastore Server, Sentry Server, Cloudera Navigator Audit Server, and Cloudera Navigator Metadata Server

 pg_dump -h host -p 7432 -U roleuser > /tmp/roledb 
  1. データベースの作成時に指定されたパスワードを入力します。
  2. データベース・ダンプ・ファイルを Hadoop ファイルシステム (HDFS) にコピーして、NetBackupのパラレルストリーミングフレームワークのバックアップに含めます。

PostgreSQLデータベースを使用しているHiveメタストアのリカバリ

  1. Cloudera Manager サーバーがインストールされているホストにログオンします。
  2. Cloudera Manager データベースの名前、ユーザー、およびパスワードのプロパティを次の方法から取得します。
/etc/cloudera-scm-server/db.properties 
com.cloudera.cmf.db.name=scm
com.cloudera.cmf.db.user=scm 
com.cloudera.cmf.db.password=NnYfWIjlbk

3.次のコマンドを root として実行して、新しいHiveデータベースを削除または作成します。

psql -c "drop database <dbname>;”

To set/alter password of DB 
postgres=# \password hive 
Enter new password: 

Enter it again:
postgres=# alter database hive owner to hive; 
ALTER DATABASE 
To list the newly create database 
postgres=# \list

4.次のコマンドを実行して、データベースダンプをリカバリします。

psql -h <hostname> -p <Port> -U <hive-db-user> -d <hive-DB-Name> -f <path of db dump file to be imported>
e.g.
psql -h localhost -p 7432 -U hive -d hive -f /tmp/all.20181001.sql

5.データベースの作成時に指定されたパスワードを入力します。
6.Hive データベースまたはサービスを起動します。

以上です!いかがでしたでしょうか?ダンプを作成するのはいいですが、その後、NetBackup Parallel Streaming Frameworkでそのバックアップを取る必要がありますね。次回はHortonWorks HadoopとメタストアにMySQLを使ったパターンをご紹介します!

商談のご相談はこちら

本稿からのお問合せをご記入の際には「コメント/通信欄」に#GWCのタグを必ずご記入ください。
ご記入いただきました内容はベリタスのプライバシーポリシーに従って管理されます。