SQLライクにMapReduce処理ができる「Hive」の使い方:きょうから試せる Hadoop“スモールスタート”ガイド(終)(1/3 ページ)
実際にHadoopで処理を実装していきながら「Hadoopは、誰にだって扱える」を体感しましょう。今回は、Hadoop Streamingとは別のHadoopの利用方法となる「Hiveの使い方」を解説します。
書籍の中から有用な技術情報をピックアップして紹介する本シリーズ。今回は、秀和システム発行の書籍『Hadoopファーストガイド(2012年9月20日発行)』からの抜粋です。
ご注意:本稿は、著者及び出版社の許可を得て、そのまま転載したものです。このため用字用語の統一ルールなどは@ITのそれとは一致しません。あらかじめご了承ください。
SQLライクにMapReduce処理できるHive
Hadoopを利用する方法はHadoop Streamingだけではありません。本章で扱うApache Hive(以下、Hive)もそのひとつです。Hiveを利用すればMapperやReducerに処理を分割する必要はなく、リレーショナルデータベースを扱うような感覚でHiveQLを使ってHadoop処理を実行することができます。
Hiveとは?
Hiveとは、Hadoopのラッパーであり、リレーショナルデータベースを扱うような感覚でHadoopジョブを実行することができる仕組みです。SQLのようなDSL言語(HiveQL)を利用するのですが、HiveQLを使って処理を書けば内部的にMap処理とReduce処理に変換されて実行されます。
Hiveはフェイスブックで開発され、2008年12月に正式にHadoopプロジェクトに寄贈されました。フェイスブックでは95%のHadoopジョブをHiveを使って実行しているそうです※1。普段から利用しているSQLのような感覚でHadoopを実行することができるので心理的な障壁が小さいかもしれません。
HiveQLは一般的な集約関数や各種演算子もサポートしていますし、Ruby、Perl、PHP、Python、Javaといったさまざまな言語で記述したMapper、Reducerを利用することも可能で、これを利用すればSQLでは難しいような処理でも対応可能です。
Hiveのインストール
ではEMR(Amazon Elastic MapReduce)でHiveを利用できる環境をまずは構築しましょう。これはEMR起動時に「--hive-interactive」オプションを付けるだけです。
Hiveのバージョンが表示されればHiveが利用できる状態となっています。執筆時点では0.8.1.2が動作していることが確認できました。
なお、Hiveが使える状態で起動したEMRクラスタはHiveを利用可能にするステップが自動で設定されるため、「--list」オプションでジョブフローを照会すると「Setup Hive」というステップを確認できます。
Hiveの基本動作
実際にHiveを実行するためには、Hiveのインタラクティブシェルに入ります※2。
※2 掛かった時間など表示しなくていい場合にはhive -Sでシェルに入ると良いです
オプション | 説明 | 例 | |
---|---|---|---|
-e COMMAND | コマンドを実行する | ||
-f FILE | 指定したスクリプトを実行する | myscript.q | |
-d KEY=VALUE | スクリプトに変数を渡す | OUTPUT=s3n://path/to/output_dir | |
-S | 実行時のメッセージ(かかった時間など)を表示しない | ||
-v | SQL実行時の詳細なメッセージを表示する | ||
-version | Hiveのバージョンを表示する | ||
-h | ヘルプを表示する |
関数を調べる
SHOW FUNCTIONSで利用可能な関数の一覧を見ることができます。また、以下のように指定すればsubから始まる関数だけを表示することも可能です。
関数の説明を見ることもできます。いろいろな関数があるので調べてみてください。
データベース操作
通常、インタラクティブシェルにログインした場合のHiveデータベースはdefaultデータベースが利用されます。データベースはこのように確認できます。
mydbというデータベースを新たに作成してみましょう。
すると、先ほどのdefaultデータベースに加えて、mydbデータベースも存在していることがわかります。
別のデータベースを利用したいときには次のようにUSEを使います。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- もし、あなたが「“ビッグデータプロジェクト”を任せる。何とかするように」と言われたら
「ビッグデータプロジェクトを始めることになった」ら、具体的に何をするのか。本連載は、「ビッグデータプロジェクトの“進め方”」を業務視点/ビジネス視点の両面から体系的に理解し、具体的に実践していく方のためのナレッジアーカイブです。第1回目は、「ビッグデータとは何か」の基礎と、「ビッグデータ基盤の概要とメリット」を解説します。 - Hadoopは「難しい・遅い・使えない」? 越えられない壁がある理由と打開策を整理する
ブームだったHadoop。でも実際にはアーリーアダプター以外には、扱いにくくて普及が進まないのが現状だ。その課題に幾つかの解決策が出てきた。転換期を迎えるHadoopをめぐる状況を整理しよう。 - いまさら聞けないHadoopとテキストマイニング入門
Hadoopとは何かを解説し、実際にHadoopを使って大規模データを対象にしたテキストマイニングを行います。テキストマイニングを行うサンプルプログラムの作成を通じて、Hadoopの使い方や、どのように活用できるのかを解説します - 欧米の金融業界は今、どうHadoopを活用しているか
Hadoopは、欧米の金融関連サービス業界でどう活用されているか。米Hortonworksの金融サービス業界担当ゼネラルマネージャーへのインタビューで得た情報を、2回に分けてお届けする。今回は金融業界におけるHadoopのユースケースを概観する。