Amazon Elastic MapReduceを使う:マネージメント・コンソールからサンプルを動かす。
前回の記事では、Amazon Web ServicesのEMR(Amazon Elastic MapReduce)で、マネージメント・コンソールからクラスタを作成した。
今回は、同じくマネージメント・コンソールから、サンプルプログラム(Word Count)を起動してみる。
Pythonで書かれたサンプルで、詳細はAmazon Web ServicesのArticles&Tutorials>Word Count Exampleにある。
クラスタが起動した状態で、マネージメント・コンソールでStepを追加する。
このとき、以下のように設定する。
Step Type | Streaming Program(Scriptなので、Hadoop Stremaingを使う) |
Name | Word Count(任意) |
Mapper | s3://elasticmapreduce/samples/wordcount/wordSplitter.py |
Reducer | aggregate |
Input S3 Location | s3://elasticmapreduce/samples/wordcount/input/ |
Output S3 Location | 結果を出力したいバケット/フォルダー |
上図の青いAddボタンを押すと、Stepが追加され、プログラムが実行される。正常に実行されると、下図のように緑でRunning表示される。実行途中、もしくは起動に失敗すると、赤でFailedと表示される。
先の記事で、クラスタのログの出力先を指定した。指定したバケット/フォルダー下のステップ番号(下の例では6)配下に、ログた出力される。
以下が、syslog。
以下がcontrollerログの中身。
StepがCompletedとなったら、ステップ終了。
出力先に指定したバケット/フォルダーに結果が出力される。_SUCCESSは正常終了。part-00000, part-00001, part-00002がワードカウントの結果。
以下が、part-00000の中身である。
一旦ここで、クラスタを終了する。(前回の記事の方法で起動した場合、明示的にクラスタを終了しなければ、クラスタが起動しつづけてしまい、その間、下記されてしまう)
コンソール画面で、Terminateボタンを押すと、以下の画面となる。
これは、クラスタを起動した際に、Termination ProtectionをYesにしたため(下図)。
上の画面で、Changeをクリックして、Protectionを解除する。
すると、ProtectionがOffに変化する。
Terminateを押すと、クラスタが終了し、マネージメント・コンソールにTerminatingと表示される。