HueからRDBMSをクエリする

Hueには、SQL on Hadoopとして一般的な、HiveやImpalaにクエリを行うためのクエリエディタが用意されています。最新のHueではクエリエディタが改善され、とても使いやすくなりました。一押しです。

hue1が、今回はクエリエディタ機能の説明ではありません。別のブログネタを仕込む途中に必要が生じたので、HueのDBクエリの設定を行います。

HueのDBクエリ

HueにはRDBMS用のクエリエディタも用意されており、HiveやImpala同様に、MySQLやPostgreSQLに対してクエリを行うこともできます。
ところがCloudera Quickstart VMのデフォルトではDBクエリの設定がされていないため、メニューからDBクエリを選択すると次のような画面が表示されてしまいます。

hue2Hueの設定ファイルは、通常 /etc/hue/conf/hue.ini です。一般的にはこのhue.iniファイルをエディタで開いて [librdbms] セクションを修正すれば良いのですが、Cloudera Manager でHadoopを管理するようした場合、ファイルを直接変更しても反映されません。代わりにCloudera ManagerのHueの設定画面で行う必要があります。

Hueの設定

Hueの設定画面から safety valve ini というキーワードで検索します。

hue3見つかった、「hue_safety_valve.ini の Hue サービスの高度な設定スニペット(安全バルブ)」にRDBMSの設定を行います。

hue4ここに何を設定したらいいのかは、/etc/hue/conf/hue.ini 設定ファイルのコメントが参考になるでしょう。

###########################################################################
# 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>
(略)

Quickstart VM内にはMySQLが実行されています。このMySQLに繋げる設定を記述してみましょう。

  • MySQLのデータベース名はretail_db
  • DBの種類はmysql
  • ホストはquickstart.cloudera
  • ポートは3306
  • ユーザー名はretail_dba
  • パスワードはcloudera

以下のように記述(またはコピペ)して保存し、Hueを再起動します。


[librdbms]
[[databases]]
[[[mysql]]]
nice_name="My SQL DB"
name=retail_db
engine=mysql
host=quickstart.cloudera
port=3306
user=retail_dba
password=cloudera

hue5

変更を保存すると再起動が促されます

hue_restartアクションから再起動を選んでHueを再起動します。

hue_menu

Hueから設定を確認する

Hueのメニューの一番左上にあるロゴをクリックし、librdbmsの設定を確認してみましょう。

hue6設定をクリックします。

hue7Cloudera Managerから設定した内容が表示されているはずです。もし表示されなければ正しく反映されていないので、Cloudera ManagerからHueに対して行った設定を確認してください。

DBクエリを実行する

Query Editorメニューから「DBクエリ」を選択します。

hue_dbquery今度はエラーが表示されず、クエリ入力画面が表示されていますね。

hue8左側のペインにはテーブル一覧が表示されています。クリックするとテーブルの列名が表示されます。右上のペインにクエリを記述して実行してみましょう。

hue9成功です!あとはお好きにどうぞ。

まとめ

HueはHiveやImpalaのクエリの実行するのに便利です。また、Sqoopを使ってRDBMSからHadoopにデータをインポートしたい場合などのように、RDBMSに対してちょっとしたクエリを行いたいこともよくあります。

HueのDBクエリはものすごく高機能なツールではありませんが、RDBMS用のシェルを立ち上げてクエリを行うよりは使いやすく、別のツールを起動しなくてもHueからRDBにクエリが実行できて便利ですね。

Pocket

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)