masayuki5160's diary

名古屋でエンジニアしてます。

Amazon Elastic MapReduceを使ってMahoutのレコメンドを試す

こちらを参考に試してましたが、多少管理画面がかわっているようでちょっと手間取りました。


Bootstrap ActionのConfigure your Bootstrap ActionsでMemory Intensive Configurationを設定する、とのことでしたがみつからずとりあえずためしてみたら下記ヒープ領域が足りないというエラーメッセージがでました。

2015-01-02 10:43:24,982 FATAL org.apache.hadoop.mapred.Child (main): Error running child : java.lang.OutOfMemoryError: Java heap space


他に回避方法があるのかもしれませんが面倒だったのでインスタンスタイプを変更し、メモリを増やすことで回避しました。

また、記事ではus-east-1リージョンを使用する話になっていましたがTokyoリージョンで実行しました。(USリージョンで実行する理由はよくわからなかったのですが料金とかの関係?)少しだけJAR Argumentsの設定がかわります。

org.apache.mahout.cf.taste.hadoop.item.RecommenderJob -Dmapred.map.tasks=40 -Dmapred.reduce.tasks=8 -Dmapred.input.dir=s3://(任意のバケット名)/input-bx -Dmapred.output.dir=s3://(任意のバケット名)/output-bx --numRecommendations 100 --similarityClassname SIMILARITY_PEARSON_CORRELATION

おそらくUSリージョンになっているからかs3のパス指定だけ修正しました。他は同じです。実行すると下記のようにS3に結果が出力されました。

f:id:masayuki5160:20150102220726p:plain


細かいところがまだ把握できてないのでもう少しいろいろ試してみます。