AWS EMRはコマンドラインツール(CLI)で操作することが出来る。
EMRのコマンドラインツールはRubyで作られているので、Rubyをインストールしておく必要がある。
# tar xf ruby-1.8.7-p371.tar.gz # cd ruby-1.8.7-p371 # ./configure # make # make install
# yum install openssl-devel # cd ruby-1.8.7-p371/ext/openssl # ruby extconf.rb config # make # make install
# cd /usr/local # mkdir emr-cli # cd emr-cli # unzip elastic-mapreduce-ruby.zip
# vi /usr/local/emr-cli/credentials.json
{ "access_id": "アクセスキー", "private_key": "シークレットキー", "keypair": "キーペアの名前", "key-pair-file": "pemファイルのパス", "log_uri": "ログファイルの出力先(s3n://バケット名/logs/とか)", "region": "ap-northeast-1" }
elastic-mapreduceコマンドを実行したときに以下のようなエラーが出る場合、Rubyのopensslがインストールされていない。
$ elastic-mapreduce
/usr/local/emr-cli/amazon/coral/v0signaturehandler.rb:4:in `require': no such file to load -- openssl (LoadError)
from /usr/local/emr-cli/amazon/coral/v0signaturehandler.rb:4
〜
EMRインスタンスを起動する例。
elastic-mapreduce --create --alive \ --name hishidama-emr \ --hadoop-version 1.0.3 \ --ami-version latest \ --enable-debugging \ --master-instance-type m1.small \ --slave-instance-type m1.small \ --num-instances 4 \ --jobflow-role emr-iam-role \ --bootstrap-action s3://elasticmapreduce/bootstrap-actions/run-if \ --args "instance.isMaster=true,s3n://自分のバケット/bootstrap-actions/bootstrap.sh"
オプション | 備忘 |
---|---|
--num-instances | マスターとスレーブの両方を合わせた台数。 |
--jobflow-role | IAMロールを指定する。 古いバージョンのCLIにはこのオプションは存在しない。(Version 2012-06-12には無くて、Version 2013-03-19には有った) |