2014年版 Hadoopを10分で試す(1)

Hadoop関連(全部俺) Advent Calendar 2014:7日目

先週の研修中に、「Hadoopをこれから試してみたいけど、どこから始めたらいいでしょうか?」という質問がありました。

構築の勉強をしたいのであれば、今ならパブリッククラウドや仮想化環境を使えるので、実際に構築してみるのが良いでしょう。パッケージを手作業でインストールしても良いですし、Cloudera Managerを使えば簡単です。

MapReduceやSparkのジョブの開発方法を学びたいのであれば、環境を用意した上で、先日紹介したO’Reillyなどの書籍を利用したり、あるいはセミナーや研修を受講するのが良いかもしれません。

MapRediuceやSparkを試すための簡単な方法のひとつは、「Hadoop入門:Hadoopを10分で理解する」 シリーズで紹介したCloudera Managerであり、Cloudera Quickstart VMです。先日のブログを書く際に、最新版のCloudera Quickstart VM 5.2 の仮想マシンイメージをダウンロードして利用したので、インストール方法から動作確認、その他入門になりそうなところをを紹介します。

冬休み、正月休みももうすぐ(?)なので、この機会にHadoopをやる!という方の参考になれば嬉しいです。

Cloudera Quickstart VMイメージのダウンロード

まずはClouderaのサイトから仮想マシンのイメージをダウンロードします。最低搭載メモリは4GBとなっています。(Cloudera Managerを動作させる場合、ウェブページには最低4GBと書かれているにもかかわらず、8GBはないとツラいです)。

vm_downloadvm_requirement

CDHのバージョン、仮想マシンイメージの種類を選択し、ダウンロードの前にTerm and conditionをサブミットしてダウンロードします。(ネットワークの速度によりダウンロード時間は大きく異なります。)

ダウンロードしたファイルは 7Zip形式なので、解凍ツールが必要な場合は事前に用意しておきましょう。ダウンロードが終わったら仮想マシンイメージを展開して実行します。

仮想マシンの実行方法は仮想化環境により異なります。VMWareとVirtualBoxは比較的簡単だとと思いますが、KVMは少し敷居が高い(と思う)のでご注意ください。(参考: KVMでCloudera Quickstart VMを動かす

VMイメージをブートする

ブートするとCentOSが起動し、以下のような画面が表示されます。

vm_bootなお、この時点でCloudera Managerはセットアップされていません。つまり、CDH5.2のHadoop, Hive, Spark, Impalaなどコンポーネントは、RPMパッケージによりインストールされています。(これが今までのQuickstartと大きく異なるところ)。Cloudera Managerのセットアップは明日以降で紹介予定です。

Hueにログイン

最初にHueのログイン画面が表示されていることから、Hadoop関連の操作はコマンドラインではなく「Hueを使え」というメッセージのようですね。デフォルトのユーザー名とパスワードはcloudera/clouderaなので、入力してログインします。

Hueのスタートアップウィザードに従い、Nextを押します。Install all the application examplesはAllをクリックして、サンプルアプリケーションをインストールしておきましょう。それ以外はNextをクリックして、最後に Hue Homeをクリックします。

vm_hue_wizardvm_hue_home

Hueの日本語化

おっと、日本語環境にしたいですね。日本語の手順は過去のブログもご覧下さい。今回はyumのレポジトリを変更する必要はありませんでした。インストールが終わったらFirefoxの設定を変更し、ページを再読み込みします。

[cloudera@quickstart ~]$ sudo yum -y groupinstall japanese-support
Loaded plugins: fastestmirror, security
Determining fastest mirrors
epel/metalink                                          | 4.8 kB     00:00
 * base: ftp.nara.wide.ad.jp
 * epel: ftp.jaist.ac.jp
 * extras: ftp.nara.wide.ad.jp
 * updates: ftp.nara.wide.ad.jp
base                                                   | 3.7 kB     00:00
base/primary_db                                        | 4.6 MB     00:00
(略)
Dependency Installed:
  anthy.x86_64 0:9100h-10.1.el6
  ibus.x86_64 0:1.3.4-6.el6
  ibus-gtk.x86_64 0:1.3.4-6.el6
  ibus-libs.x86_64 0:1.3.4-6.el6
  im-chooser.x86_64 0:1.3.1-3.el6
  imsettings.x86_64 0:0.108.0-3.6.el6
  imsettings-libs.x86_64 0:0.108.0-3.6.el6
  kasumi.x86_64 0:2.5-1.1.el6
  libgxim.x86_64 0:0.3.3-3.1.el6
  notify-python.x86_64 0:0.1.1-10.el6
  pyxdg.noarch 0:0.18-1.el6
  vlgothic-fonts-common.noarch 0:20091202-2.el6                               

Complete!

なお、Firefoxのバージョンが上がっていて、日本語の切り替え方法が若干異なっていました。

vm_hue_firefox

vm_hue_japanese無事に日本語化も完了です。

サンプルを実行してみる

最新のHueは、最初のウィザードでいくつかのサンプルアプリケーションをインストールできます。以前のブログでもHiveやImpalaを紹介しましたが、今回もHadoopをSQLで操作する、HiveとImpalaのサンプルを実行してみましょう。

Hiveのサンプルを実行

今回は Top salary という、サンプルデータから2007年の高額給与のユーザーを抽出するHiveQLを実行します。Hue Home(マイドキュメントと表示されます)にて、(Hue Homeは一番上の家のアイコンです)

hive_top_salaryをクリックします。Hiveのクエリエディタが表示されました。

スタートアップでインストールされたHiveQLが表示されていますね。実行をクリックしてHiveのクエリを実行します。

hive_sample_before

HiveのクエリがMapReduceジョブとして実行され、しばらく待つと下部のペインの結果タブに結果が表示されます。

hive_sample_resultチャートをクリックすると、棒グラフや円グラフなどで表示もできます。

hive_sample_chart

Impalaのサンプルを実行

Impalaは分散SQLエンジンです。HiveがMapReduceに変換するのに対し、ImpalaはMapReduceに変換することなく、独自のエンジンでクエリを分散実行します。Hiveとほぼ同じクエリを実行することができますが、速度が速いのが特徴です。

一番上の家のアイコンをクリックして、Hive Homeに戻りましょう。今度は以下のリンクをクリックして、ImpalaでHiveと同じTop Salaryのクエリを実行します。

impala_top_salary上記のリンクをクリックします。HiveとImpalaのクエリエディタはほとんど同じ画面ですね。

表示された画面で実行をクリックします。

impala_sample_beforeHiveと比べてすぐに結果が返ってきたのではないでしょうか?Impalaのクエリの応答は速いので、分析などに向いていることがお分かりいただけたことでしょう。

なお、Impalaは起動直後の1回目のクエリの際、メタストアに記録されたメタ情報をキャッシュします。2回目以降のクエリはもっと早く結果が戻ってきます。興味があれば他のクエリも試してみてください。

 

Pocket

One thought on “2014年版 Hadoopを10分で試す(1)

  1. Pingback: (続)Apache Kafkaを試す | Tech Blog

Leave a Reply

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

CAPTCHA


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