Amazon EMR編~ElasticMapReduceの使い方パート①~


こんにちは! JQです。

前回は『Amazon VPC編~Natインスタンスパート④~』ということで、RouteTableによるNatインスタンスの切替をお話しました。 

今回は『Amazon EMR編~ElasticMapReduceの使い方パート①~』と題して、EMR(ElasticMapReduce)の使い方に関してお話していきたいと思います。
っと、その前にAWSの更新情報をご紹介します。
 
先日、AWS Elastic BeansTalkのIAM Rolesのサポートが発表されました。
IAM Rolesが使える事でBeansTalkの管理がさらに簡単にできますね!

さらに詳しい情報がお知りになりたい方は、公式サイトの「新着情報」をご覧下さい。

それでは、ここから本題に入りまして、EMRの使い方を試していきたいと思います。
今回はAWSのドキュメントの「ワードカウント」を試していきます。

S3バケットの作成

1. まずはデータのinputやoutputに利用するS3バケットを作成します。
※EMRと別リージョンに作成すると転送量が発生しますので、ご注意下さい。
 また、S3バケット作成の詳細については以前のレシピ「Amazon S3編~S3バケットを作成してみよう!~」も参照してください。

2. WEBコンソールで作成します。

20130507_01_01

解析するデータのアップロード

3. 作成したS3バケットで「Create Folder」ボタンをクリックしてinputというデータを置くフォルダ作成します。

20130507_01_02

4. アップするデータとしてinput.txtというタブ区切りのファイルを作成します。

5. 「Upload」ボタンをクリックして作成したinput.txtをinputフォルダにアップロードします。

20130507_01_03

スクリプトのアップロード

6. 今回では「Streaming」というJOBタイプを利用して行います。
「Streaming」ではPython, Ruby, Perl, PHP, R, Bash, C++などの言語を利用する事が出来ます。

今回のサンプルスクリプトはPythonで作成されており、中身は以下になります。

サンプルスクリプトはこちらからダウンロード出来ます。
または上記の内容を保存して作成します。

7. 保存したファイルを作成したS3バケットの直下にアップロードします。

20130507_01_04

これで準備は完了となります!
いかがでしたでしょうか?

次回は『Amazon EMR編~ElasticMapReduceの使い方パート②~』ということで、実際にJobFlowを立ち上げてみたいと思います。
お楽しみに!