#jawsug Elastic MapReduceを使う前にやっとくと幸せになるかもしれない設定
Elastic MapReduceを使ってると何でもかんでもS3にアップロードさせられるので、いちいちManagementConsoleからアップロードするのは結構面倒です。ローカルにHadoopをインストールして、$HADOOP_HOME/conf/core-site.xmlに以下の設定を追加すると、HDFSのバックエンドにS3を使うことができて便利ですよ。
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <property> <name>fs.s3n.awsAccessKeyId</name> <value>[AWS_ACCESSKEY_ID]</value> </property> <property> <name>fs.s3n.awsSecretAccessKey</name> <value>[AWS_SECRET_ACCESSKEY]</value> </property> </configuration>
使い方
$ # S3にファイルを置く場合 $ hadoop fs -put <S3に置きたいファイル> s3n://<バケット名>/<ファイルを置きたい場所> $ # S3のファイルの内容を表示したい場合 $ hadoop fs -cat s3n://<バケット名>/<表示したいファイル>
具体的にはこんな感じで使えます。
$ # S3に置くファイルはこんな感じ $ cat hogehoge.txt hello elastic mapreduce $ # 実際にS3に置いて内容を表示してみる $ hadoop fs -put hogehoge.txt s3n://yourbucket/any/prefix/of/hogehoge.txt $ hadoop fs -cat s3n://yourbucket/any/prefix/of/hogehoge.txt hello elastic mapreduce