share facebook facebook facebook twitter twitter menu hatena pocket slack

2011.03.11 FRI

Elastic MapReduceを使ってみた

鈴木 宏康

WRITTEN BY 鈴木 宏康

今回は、Elastic MapReduceを使ってみました。
前回の記事で、MapReduceのアルゴリズム(streaming)でMapReduceのアルゴリズムをおさえ、MapperとReducerをPHPで実装MapperとReducerをPHPで実装しました。
最後は、AWSのElastic MapReduceを使って実行してみたいと思います。

まずはじめにAWS Management Consoleを利用して、S3にインプットファイル(input.txt)とMapper(mapper.php)とReducer(reducer.php)をアップロードしておきます。

次にAWS Management ConsoleのElastic MapReduceタブを選択し、上部のCreate New Job FlowボタンでJob Flowの登録を行います。

名前は適当につけていますが、Job Flowのタイプは、MapperとReducerでPHPを利用するため、Streamingを選択します。

そして、S3上のInputファイル、Mapperファイル、Reducerファイルの結果を出力するディレクトリを指定します。

その後、起動するインスタンス数やインスタンスタイプを決定します。

実行開始時に、何かしらの処理の実行をすることができますが、今回は何も実行しません。

設定した内容を確認して問題なければ、Job Flowが作成され、そのまますぐに実行されます。

設定した内容の状況は、AWS Management Consoleで確認することもできます。

起動や終了にそれなりの時間がかかりますが、処理が終了すると、S3上の結果出力ディレクトリに下記のように結果ファイルが作成されています。

実際に出力されたファイルは下記のようになっており、

——–【part-00000】——–

2,54055
5,35687
8,23224
M,1
P,10200
S,1
V,5100
b,2552
e,73968
h,12751
n,40804
t,124957
w,22950

——–【part-00001】——–

0,141210
3,41938
6,37430
9,15423
H,10201
K,10200
N,10201
T,20401
c,25503
i,38251
l,17853
o,30604
r,25503
u,51001
x,15300

——–【part-00002】——–

1,142008
4,33894
7,25650
C,1
I,2550
L,2
O,20400
R,1
U,1
a,35710
d,22954
g,22951
m,20404
p,43355
s,53562
v,12750
y,2553

想定された結果になっていることがわかります。

次は、Elastic MapReduceでMahoutに挑戦してみます。

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら

鈴木 宏康

鈴木 宏康

愛知県生まれ。東京工業大学大学院修士課程修了。在学時より、ベンチャー企業でインターネットに関する業務に携わり、現在はクラウド(主にAmazon Web Services)上での開発・運用を軸とした事業の、業務の中心として活躍。

cloudpack

cloudpackは、Amazon EC2やAmazon S3をはじめとするAWSの各種プロダクトを利用する際の、導入・設計から運用保守を含んだフルマネージドのサービスを提供し、バックアップや24時間365日の監視/障害対応、技術的な問い合わせに対するサポートなどを行っております。
AWS上のインフラ構築およびAWSを活用したシステム開発など、案件のご相談はcloudpack.jpよりご連絡ください。