Amazon Elastic MapReduceの使い方─Hadoopより手軽にはじめる大規模計算

第2回Web ConsoleからElastice MapReduceを起動させる

前回は、Amazon Elastic MapReduce(EMR)を使うまでに必要なことを説明しました。今回からは実際の使い方を紹介していきます。

Web Consoleに接続する

まずはWebブラウザでAWSのWeb Consoleに接続します。AWSの推奨ブラウザはFirefoxです。接続したら、⁠AWS Management Consoleを利用する」をクリックし、Web Consoleのログイン画面に進みます図1⁠。

図1
図1

次に、登録に使用したE-mailアドレスとパスワードを使ってWeb Consoleにログインします図2⁠。

図2
図2

ログインしたら、タプの中からAmazon Elastic MapReduceを選択します図3⁠。

図3
図3

新しいJob Flowを作成する

次に、Create New Job Flowを選択し、新規にMapReduceのJobを作成します図4⁠。リージョンに関しては自分が使用する適切なリージョンを選択してください。Create New Job Flowをクリックすると図5の画面が起動します。

図4
図4
図5
図5

ここではまず、Job Flow NameにMapReduceのJob名を入力してください。Job Flow Nameは入力が必須の項目です。Create a Job Flowのところで起動するJobを選択します。以下のように目的に応じて選択してください。

自分で作成したアプリケーションを使用する場合
→Run your own application
ためしになにかしらのJobを起動してみたい場合
→Run a sample applicationを選択します。

サンプルには下記のものがあります。

  • Contextual Advertising(Hive Script)
  • Word Count(Streaming)
  • CloudBurst(Custom Jar)
  • CloudFront HTTP LogAnalyzer(Custom Jar)
  • Apache Log Reports(Pig Script)

今回は自分で作成したCustome Jar(Word Count)を使用して実行してみるため、Run your own applicationを選択します。

最後にJobのタイプを指定します。使用できるJobのタイプには以下のものがあります。

  • Hive ProgramHiveを使ったアプリケーション)
  • Custome Jar(Javaで書いたネイティブなアプリケーション)
  • Streaming(ストリーミングを使ったアプリケーション)
  • Pig Programpig.apache.org/">Pigを使ったアプリケーション)

continueをクリックすると次の画面が表示されます図6⁠。

Jobのタイプを指定する

図6
図6

Jar LocationにJobを実行するjarファイルが存在するS3のパスを指定します。実際に自分で作成したアプリケーションを実行する場合は、Custom Jarに限らず、S3上にアプリケーションを保存しておく必要があります。

次に、Jar Argumentsに、jarファイルに渡すパラメータを指定します。今回は、以下の3つを指定しています。

  • 実行するプログラムのタイプ(Word Count)
  • インプットに使用するデータが存在するS3のパス
  • 結果を出力するS3のパス

指定が終わったら、continueをクリックして次の画面図7を表示させてください。

起動したいインスタンスの数を設定する

図7
図7

まず、以下の2つを指定します。

Number of Instances
→起動したいインスタンスの数
Type of Instance
→起動したいインスタンスのタイプ

このあたりは自分で作成したアプリケーションがどのぐらいのパフォーマンスを必要となるのかを計算し、適切なものを選択してください。

次にAmazon EC2 Key Pairでキーを指定します。通常ではデフォルトのものでかまいませんが、自分で作成したキーを指定すると、EMRが起動中はそのインスタンスにキー認証でログインすることができます。

最後に、デバッグするかどうかのオプションを選択します。それぞれ以下のような効果があります。

Enable DebuggingをYesにする
→HadoopのログがAmazon S3 Log Pathに指定したS3のパスに保存できるようになります。
Enable Hadoop DebugginsをYesにする
→リアルタイムでデバッグの進行状況などが確認できるようになります。こちらを使用するには、前回説明したAmazon SimpleDBを有効にしておく必要があります。

設定が終わったら、continueをクリックして次の画面図8を表示させてください。

bootstrapを指定する

図8
図8

ここでは、EMRに対してbootstrapを指定するかを選択します。bootstrapとは起動時に処理をしてくれるスクリプトのことです。これを使用すれば、起動時にHadoopに渡すパラメータを変更したりすることができます。

今回は使用しませんが、bootstrapを使用する場合は「Configure your Bootstrap Actions」を選択してください。

continueをクリックすると次の画面が表示されます図9⁠。

設定を確認してJobを起動する

図9
図9

最後に、今まで入力した内容の確認画面が表示されます。内容に間違いがある場合は、各フローを選択して修正してください。

問題がなければCreate Job Flowを選択してJobを起動してください。Jobを起動すると、図10のようにリストにJobの状態が表示されます。

図10
図10

下のJob Flowの画面には、選択したJobの詳細な情報が表示されます。EMRではまずJobが起動する前にEC2インスタンスが起動するので、Start Dateが表示されていません。実際には起動に4、5分かかります。起動が完了するとJobが開始され、Start Dateに実際にJobが起動した時間が表示されます。

Jobが完了すると、図11のようにStatusがCOMPLETEDに変わります。

図11
図11

そして、以下の情報が表示されます。

  • Jobを起動した時間(Start Date)
  • Jobを終了させた時間(End Date)
  • どのぐらい処理に時間が掛かったのか(Elapsed Time)

出力結果はJar Argumentsで指定したS3上のパスに出力されています。

以上で、Web ConsoleでEMRを起動させる手順を説明してきました。次回からは、API(Ruby)コマンドでEMRを起動させる方法、Java SDKを使って起動させる方法を説明していきます。

おすすめ記事

記事・ニュース一覧