HDInsightを知る~ビッグデータ×クラウド

第2回 HDInsightを体験する

この記事を読むのに必要な時間:およそ 6 分

Hiveを試してみる

HiveはHadoopのファイルシステム上のファイルに対して「それがデータベースのテーブルであるかのように」アクセスすることを可能にする便利なモジュールです。

HDInsightには,このHiveの機能を簡単に試せるように,サンプルのテーブルが1つ,あらかじめ定義されています。これにAzure PowerShellでアクセスしてみましょう。

まず,接続するHDInsightクラスタを指定します(HDInsightのクラスタは,いくつでも作れます⁠⁠。

PS C:\> Use-AzureHDInsightCluster sasahdi2014
Successfully connected to cluster sasahdi2014

あとは,hiveコマンドを叩くだけです。テーブルの存在を確認してみましょう。

PS C:\> hive "show tables"

hivesampletable

hivesampletableというのがあるのがわかります。どんなテーブルなのでしょう?

実はこれ,⁠とあるEコマースサイトに対するモバイルデバイスのアクセスを記録した」という設定の,架空のログファイル(/hive/warehouse/hivesampletable/HiveSampleData.txt)をHiveのテーブルにしたものです。

少しフィールドを絞って,時刻でソートし,10件だけ抽出してみます。

PS C:\> hive "select clientid,querytime,devicemake,devicemodel,state from hivesampletable order by querytime limit 10"

132587  00:00:01        Apple   iPhone 4.2.1    Texas
62003   00:00:06        LG      VS740   California
20701   00:00:06        LG      LS670   Pennsylvania
132587  00:00:06        Apple   iPhone 4.2.1    Texas
30615   00:00:06        Samsung SCH-i500        Illinois
132587  00:00:07        Apple   iPhone 4.2.1    Texas
132587  00:00:07        Apple   iPhone 4.2.1    Texas
132587  00:00:07        Apple   iPhone 4.2.1    Texas
133562  00:00:10        Apple   iPhone 4.1      West Berkshire
62426   00:00:12        LG      VS660   Pennsylvania

このように,他のプラットフォームのHadoopと同様に,Hiveを簡単に使うことができます。なお,自然な感じで⁠hive⁠コマンドを使っていましたが,これはInvoke-AzureHDInsightHiveJobコマンドレットのエイリアスなのでした。

PS C:\> alias hive
CommandType     Name
-----------     ----
Alias           hive -> Invoke-AzureHDInsightHiveJob

Hive ODBCドライバの活用

先ほどのHiveテーブル,実は6万レコード近くあります。データベースのテーブルとしては特段多いわけではありませんが,しかしPowerShellのコンソールでクエリを繰り返すより,もう少し見やすい方法がほしいところですよね。

そこで,⁠Microsoft Hive ODBC Driver⁠を使ってみましょう。これは,Hiveテーブルに対するODBC接続を可能にするドライバです。こちらからダウンロードできます。

32-bit版と64-bit版がありますが,これはお使いの「Officeのアーキテクチャに」対応した方をダウンロードしてください。たとえば筆者は,64-bit版のWindows 8.1上で32-bit版のOffice 2013を使っています。この場合,必要なHive ODBCドライバは32-bit版です。

インストールはとくに選択肢もありませんので,“Next”->“Next”で完了させます。

Hive ODBCドライバのセットアップ

Hive ODBCドライバのセットアップ

次に,コントロールパネルからODBCデータソースを作成します。ドライバが32ビットであれば,ここでセットアップするデータソースも32ビットです。

ドライバの選択

ドライバの選択

ドライバ選択画面になりますから,⁠Microsoft Hive ODBC Driver⁠を選択します。

“Microsoft Hive ODBC Driver⁠を選択

“Microsoft Hive ODBC Driver”を選択

次に,HDInsightクラスタへの接続情報を入力します。

Host には「クラスタ名.azurehdinsight.net」を,User NameとPasswordには,クラスタ作成時に指定した管理者名とパスワードを入力します。

HDInsightクラスタへの接続情報

HDInsightクラスタへの接続情報

では,Excelから接続してみましょう。⁠データ⁠⁠→⁠その他のデータソース⁠⁠→⁠データ接続ウィザード」とクリックします。

Excelから接続

Excelから接続

次に出てくるダイアログでは「ODBC DSN」を選び,先ほど作ったデータソースを選択します。テーブル選択では⁠hivesampletable⁠を選びます。

hivesampletableを選択

hivesampletableを選択

「接続のプロパティ」でクエリを指定することもできます。

クエリの指定

クエリの指定

最終的に,Excelのシート上にhivesampletableの内容が取り出されました。

Excelへの出力

Excelへの出力

一旦Excelに取り込んでしまえば,グラフを生成したり,ピボットテーブルで分析したりとさまざまにデータを活用できます。⁠Hadoopはよくわからないが,Excelなら慣れている」というユーザーのノウハウが活かせるわけです。

まとめ

今回は,Azure HDInsightサービスのクラスタ構築から,BLOBストレージとのやりとり,MapReduceジョブの実行,Hiveを使ったデータベースライクなクエリなどの具体的な方法をお伝えしました。HDInsightを少しでも身近に感じていただければ幸いです。

著者プロフィール

佐々木邦暢(ささきくにのぶ)

日本マイクロソフト株式会社 ビジネスプラットフォーム統括本部 インキュベーション・セールス部

Twitter:@ksasakims

バックナンバー

HDInsightを知る~ビッグデータ×クラウド