さて、前置きが長くなってしまいましたがいよいよEMRを利用します。EMRを利用するためには、以下の3つの方法があります。
まずはEMRを使った処理の流れを確認するために、AWSコンソール上から簡単なジョブを実行してみましょう。EMRのAWSコンソールに「Create New Job Flow」と書かれていると思うのでそれをクリックします。
その後、任意のジョブフロー名を付けて、ジョブフロータイプを選択します。ここではあくまでも動作確認ということでEMRから提供されているサンプルアプリケーションを利用してみましょう。「Run a sample application」の中の「Word Count(Streaming)」を選択してください。
次に、入力データが置かれたディレクトリやMapper、Reducerの指定を行います。今回はサンプルアプリケーションを選択したため、入力データの置かれたディレクトリやMapper、Reducerについては最初から選択されており、それらがそのまま利用できます。出力先のディレクトリだけ先ほど作成した自分のS3のバケット内のパス(例えばs3n://sasata299/output/YYYY-MM-DDなど)を設定してください。
次はインスタンスのタイプと数を指定します。EC2の利用時にはマイクロインスタンスが選択でき、新規AWSアカウント登録ユーザであればマイクロインスタンスを一年間無料で利用できると説明しましたが、EMRでは残念ながらマイクロインスタンスは選択できません。
EMRを利用する際には一番安くてもスモールインスタンスになります。が、掛かる料金は1時間当たり1台につき10円程度なので長時間利用しない限りはそれほど気にしなくても良いでしょう。なお、コストを抑えるためにはスポットインスタンスを利用するという方法もあります。これについては後述します。
その後、マスターノードにログインする際に利用するキーペアを設定したり、ジョブフローが終了したときにHadoopクラスタを終了させるか否か(Keep Alive)を指定するフローになります。Keep AliveをYesにした場合には、ジョブフロー終了後、明示的にHadoopクラスタを終了させる必要があるので停止させるのを忘れないように注意してください。明示的に終了しない限り、クラスタが起動し続けて、その間もずっと課金が行われます。
最後にブートストラップアクションの設定があります。今回は特に何も指定せずに進みますがブートストラップアクションを利用したい場合にはここで実行したいファイルのパスを指定してください。
ここまで設定すればジョブフローの起動が始まります。直後はジョブフローの状態が「STARTING」となっていますが、起動が完了すると「RUNNING」に、ジョブフローが完全に終了すると「WAITING」もしくは「TERMINATED」に変わります。
ジョブフロー実行後には、指定したアウトプットディレクトリに実行結果が配置されているはずなので正しくワードカウント処理が行われたかを確認しましょう。今回は入力データも用意されたものでしたが、このような結果が得られていれば正しく実行されたと考えて良いでしょう。
Copyright © ITmedia, Inc. All Rights Reserved.