Hueには、SQL on Hadoopとして一般的な、HiveやImpalaにクエリを行うためのクエリエディタが用意されています。最新のHueではクエリエディタが改善され、とても使いやすくなりました。一押しです。
が、今回はクエリエディタ機能の説明ではありません。別のブログネタを仕込む途中に必要が生じたので、HueのDBクエリの設定を行います。
HueのDBクエリ
HueにはRDBMS用のクエリエディタも用意されており、HiveやImpala同様に、MySQLやPostgreSQLに対してクエリを行うこともできます。
ところがCloudera Quickstart VMのデフォルトではDBクエリの設定がされていないため、メニューからDBクエリを選択すると次のような画面が表示されてしまいます。
Hueの設定ファイルは、通常 /etc/hue/conf/hue.ini です。一般的にはこのhue.iniファイルをエディタで開いて [librdbms] セクションを修正すれば良いのですが、Cloudera Manager でHadoopを管理するようした場合、ファイルを直接変更しても反映されません。代わりにCloudera ManagerのHueの設定画面で行う必要があります。
Hueの設定
Hueの設定画面から safety valve ini というキーワードで検索します。
見つかった、「hue_safety_valve.ini の Hue サービスの高度な設定スニペット(安全バルブ)」にRDBMSの設定を行います。
ここに何を設定したらいいのかは、/etc/hue/conf/hue.ini 設定ファイルのコメントが参考になるでしょう。
[code]
###########################################################################
# Settings for the RDBMS application
###########################################################################
[librdbms]
# The RDBMS app can have any number of databases configured in the databases
# section. A database is known by its section name
# (IE sqlite, mysql, psql, and oracle in the list below).
[[databases]]
# sqlite configuration.
## [[[sqlite]]]
# Name to show in the UI.
## nice_name=SQLite
# For SQLite, name defines the path to the database.
## name=/tmp/sqlite.db
# Database backend to use.
## engine=sqlite</h6>
(略)
[/code]
Quickstart VM内にはMySQLが実行されています。このMySQLに繋げる設定を記述してみましょう。
- MySQLのデータベース名はretail_db
- DBの種類はmysql
- ホストはquickstart.cloudera
- ポートは3306
- ユーザー名はretail_dba
- パスワードはcloudera
以下のように記述(またはコピペ)して保存し、Hueを再起動します。
[code]
[librdbms]
[[databases]]
[[[mysql]]]
nice_name="My SQL DB"
name=retail_db
engine=mysql
host=quickstart.cloudera
port=3306
user=retail_dba
password=cloudera
[/code]
変更を保存すると再起動が促されます
アクションから再起動を選んでHueを再起動します。
Hueから設定を確認する
Hueのメニューの一番左上にあるロゴをクリックし、librdbmsの設定を確認してみましょう。
設定をクリックします。
Cloudera Managerから設定した内容が表示されているはずです。もし表示されなければ正しく反映されていないので、Cloudera ManagerからHueに対して行った設定を確認してください。
DBクエリを実行する
Query Editorメニューから「DBクエリ」を選択します。
今度はエラーが表示されず、クエリ入力画面が表示されていますね。
左側のペインにはテーブル一覧が表示されています。クリックするとテーブルの列名が表示されます。右上のペインにクエリを記述して実行してみましょう。
成功です!あとはお好きにどうぞ。
まとめ
HueはHiveやImpalaのクエリの実行するのに便利です。また、Sqoopを使ってRDBMSからHadoopにデータをインポートしたい場合などのように、RDBMSに対してちょっとしたクエリを行いたいこともよくあります。
HueのDBクエリはものすごく高機能なツールではありませんが、RDBMS用のシェルを立ち上げてクエリを行うよりは使いやすく、別のツールを起動しなくてもHueからRDBにクエリが実行できて便利ですね。
コメント