Hadoopコースを攻略しよう(環境構築編)

2014年4月26日(土)
佐々木 邦暢(@ksasakims)

この記事では、「Tuning Maniax 2014 - 蒼き調律者たち」Hadoopコースに参加される方に向けて、 MapReduceプログラムの開発環境と、Azure HDInsightを使ったHadoopクラスターの構築方法を紹介します。

いざ参戦、チューニング・マニアックスHadoop編

さてこの競技、簡単に言えば以下のようなものです。

総計1TBのWebアクセスログ(を模して生成されたデータ)を解析し、次の3項目を抽出する時間を競う

  1. アクセス数の多いURL:上位10件
  2. 多く利用されているユーザーエージェント:上位10件
  3. URI毎の平均レスポンスタイム:下位10件(時間が長い方から10件)

解析のための環境としては、Microsoft Azure HDInsightサービスをご利用ください。その上で、どのような処理方式を選択されるかは参加者の自由!オーソドックスにJavaで書くも良し。Streaming APIを駆使して自分の得意な言語で楽しむもまた良し。当然HiveやPIGでの挑戦もOKです。

え、Dryadで殴り込み?もちろん大歓迎!

必要になる環境

この競技に参加するには、次のようなものが必要になります。

  1. Microsoft Azureのサブスクリプション
  2. MapReduceプログラムの開発や、HDInsightクラスターの作成・ジョブ投入等の作業を実行するためのWindowsマシン(「開発環境」)
  3. Hadoopクラスターそのもの。

1. については、大会に参加される皆さんは既に用意されていると思いますので、この記事では2.と3.についてその方法を紹介します。

開発環境の作成

まずは、Windowsマシンを一つご用意ください。Azure管理ポータルへアクセスしてHDInsightクラスターを作成するだけならブラウザさえあれば良いのですが、HDInsightを活用する際に欠かせない以下のツールがWindows環境で動作するのです。

  1. Windows Azure PowerShell
  2. Microsoft HDInsight Emulator for Windows Azure

これらは、普段お使いのPCにそのままインストールしても構いませんが、「自由にソフトをインストールできない環境である」「Surface 2を使っている」「MacBookで生きている」等の理由でインストールできないこともありましょう。

そういったケースを想定して、今回は開発環境自体もAzure仮想マシンで構築する方法をご紹介します。

仮想マシンの作成

Azure仮想マシンのギャラリーには、様々な仮想マシンイメージが用意されていますが、おすすめは最新のWindows Server 2012 R2です。

Azure管理ポータルで「新規」→「コンピューティング」→「仮想マシン」→「簡易作成」とクリックし、必要事項を記入します。

※記事中の図をクリックすると拡大表示します。

  • 「DNS名」に入力した名前が、仮想マシンのホスト名にもなります。リモートデスクトップ接続する時に、この名前を指定することになります。
  • 「イメージ」は”Windows Server 2012 R2 Datacenter”を選択してください。上の図では「R2 Datacenter」の部分が見切れてしまっていますが…
  • 「サイズ」は「基本」階層の"A2"(2コア、3.5GBメモリ。以前は”Mサイズ”と呼んでいたもの)あたりがおすすめです。A1(1コア、1.75GBメモリ)では、EclipseやHDInsight Emulatorを動かすには少々不足かもしれません。
  • 「ユーザー名」と「新しいパスワード」の部分には、管理者となるユーザーの名前とパスワードを指定します(“Administrator”は無効化されています)。
  • 「リージョン/アフィニティグループ」は、仮想マシンの配置場所の指定です。現在、日本には関東と関西の2リージョンありますので、どちらかをお使いください。

※なお、「日本(西)」は東より少々お値段控えめとなっております。

ゲストOSの日本語化

Azure仮想マシンのギャラリーにある標準イメージは、今のところすべて英語版です。簡単に日本語化できますので、方法をご紹介します。

  1. 仮想マシンが出来上がったら、管理ポータル下の黒帯から「接続」を選んでリモートデスクトップ接続します。
  2. ログオンしたら、左下のスタートボタンを右クリックして”Control Panel”をクリックします。
  3. コントロールパネルの”Add a language”をクリックします。
  4. 次の画面でも”Add a language”をクリックして、日本語を追加します。また、”Move Up”で英語より上に持ってきます。さらに”Options”をクリックします。
  5. ”Download and install language pack”をクリックします。
  6. この状態で、しばらく時間がかかりますのでお待ちください。

言語パックのインストール後、再度ログオンすると見事日本語環境になっているはずです。実は、ユーザー毎の表示言語を日本語にしただけで、システムロケールは英語のままなのですが、あまり問題ないのでこのまま行くことにします。

Web Platform Installerのインストール

では、必要な各ソフトウェアをインストールしていきます。まずは、”Web Platform Installer(WebPI)”です。これを使うと各種ソフトウェアパッケージを、その依存モジュールと共にダウンロード・インストールしてくれるものです。

このリンクからwpilauncher.exeを実行してください。
> http://go.microsoft.com/fwlink/?LinkId=255386

インストールが完了すると、自動的にWebPIが立ち上がってきます。

Windows Azure PowerShellと、Microsoft HDInsight Emulator for Windows Azureの二つを「追加」して「インストール」をクリックしてください。

※HDInsight Emulatorは”hdinsight”で検索すると出てきます。

こうなれば完了です。

HDInsight EmulatorはC:\Hadoop配下にインストールされます。

また、C:\Hadoop\javaにJDKがインストールされますので、PATHを通しておきましょう。「管理者として実行」したコマンドプロンプトで次のコマンドを実行するのが楽です。

setx PATH "%PATH%;c:\Hadoop\java\bin" /m
著者
佐々木 邦暢(@ksasakims)
日本マイクロソフト株式会社

日本マイクロソフト所属。かつては仮想化コンサルタントとして多くのHyper-V案件を担当。その後、オンプレの重力から人類を開放すべくAzure専門のセールス部隊に転身。HPCやHadoop等、大量のリソースを必要とするワークロードで一儲けしようと画策中。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています