読者です 読者をやめる 読者になる 読者になる

masayuki5160's diary

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

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

AWS 機械学習

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


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


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