連載
» 2017年03月07日 05時00分 公開

AWSとAmazon EMRを利用してみるきょうから試せる Hadoop“スモールスタート”ガイド(6)(4/6 ページ)

[佐々木達也,著]

EMRを利用する

 さて、前置きが長くなってしまいましたがいよいよEMRを利用します。EMRを利用するためには、以下の3つの方法があります。

  • AWSコンソール
  • Ruby製のコマンドラインツール(http://aws.amazon.com/developertools/2264)
  • AWS SDK(開発者向けのSDK。Java、PHP、Python、Ruby、.NETに対応)

AWSコンソールを利用する

 まずはEMRを使った処理の流れを確認するために、AWSコンソール上から簡単なジョブを実行してみましょう。EMRのAWSコンソールに「Create New Job Flow」と書かれていると思うのでそれをクリックします。

図3-27 ジョブフローの作成 ジョブフローの作成

 その後、任意のジョブフロー名を付けて、ジョブフロータイプを選択します。ここではあくまでも動作確認ということでEMRから提供されているサンプルアプリケーションを利用してみましょう。「Run a sample application」の中の「Word Count(Streaming)」を選択してください。

図3-28 ジョブフロータイプの選択 ジョブフロータイプの選択

 次に、入力データが置かれたディレクトリやMapper、Reducerの指定を行います。今回はサンプルアプリケーションを選択したため、入力データの置かれたディレクトリやMapper、Reducerについては最初から選択されており、それらがそのまま利用できます。出力先のディレクトリだけ先ほど作成した自分のS3のバケット内のパス(例えばs3n://sasata299/output/YYYY-MM-DDなど)を設定してください。

図3-29 入力データが置かれたディレクトリやMapper、Reducerの指定 入力データが置かれたディレクトリやMapper、Reducerの指定

 次はインスタンスのタイプと数を指定します。EC2の利用時にはマイクロインスタンスが選択でき、新規AWSアカウント登録ユーザであればマイクロインスタンスを一年間無料で利用できると説明しましたが、EMRでは残念ながらマイクロインスタンスは選択できません。

図3-30 インスタンスのタイプと数を指定 インスタンスのタイプと数を指定

 EMRを利用する際には一番安くてもスモールインスタンスになります。が、掛かる料金は1時間当たり1台につき10円程度なので長時間利用しない限りはそれほど気にしなくても良いでしょう。なお、コストを抑えるためにはスポットインスタンスを利用するという方法もあります。これについては後述します。

 その後、マスターノードにログインする際に利用するキーペアを設定したり、ジョブフローが終了したときにHadoopクラスタを終了させるか否か(Keep Alive)を指定するフローになります。Keep AliveをYesにした場合には、ジョブフロー終了後、明示的にHadoopクラスタを終了させる必要があるので停止させるのを忘れないように注意してください。明示的に終了しない限り、クラスタが起動し続けて、その間もずっと課金が行われます。

図3-31 キーペアの設定など キーペアの設定など

 最後にブートストラップアクションの設定があります。今回は特に何も指定せずに進みますがブートストラップアクションを利用したい場合にはここで実行したいファイルのパスを指定してください。

図3-32 ブートストラップアクションの設定 ブートストラップアクションの設定

 ここまで設定すればジョブフローの起動が始まります。直後はジョブフローの状態が「STARTING」となっていますが、起動が完了すると「RUNNING」に、ジョブフローが完全に終了すると「WAITING」もしくは「TERMINATED」に変わります。

 ジョブフロー実行後には、指定したアウトプットディレクトリに実行結果が配置されているはずなので正しくワードカウント処理が行われたかを確認しましょう。今回は入力データも用意されたものでしたが、このような結果が得られていれば正しく実行されたと考えて良いでしょう。

実行結果

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。