S-JIS[2013-05-16] 変更履歴

Amazon EMR コマンドラインツール

AWS EMRはコマンドラインツール(CLI)で操作することが出来る。


CentOSへのインストール

EMRのコマンドラインツールはRubyで作られているので、Rubyをインストールしておく必要がある。

Rubyのインストール

  1. Rubyのダウンロードサイトから、1.8系のアーカイブ(ruby-1.8.7-p371.tar.gz)をダウンロードする。
  2. 適当な場所に解凍し、インストールする。
    # tar xf ruby-1.8.7-p371.tar.gz
    # cd ruby-1.8.7-p371
    # ./configure
    # make
    # make install
  3. opensslを追加する。(参考: mocohさんのRuby on Rails on andLinux
    # yum install openssl-devel
    # cd ruby-1.8.7-p371/ext/openssl
    # ruby extconf.rb config
    # make
    # make install

Amazon Elastic MapReduce Ruby Clientのインストール

  1. Amazon Elastic MapReduce Ruby Clientのサイトからアーカイブ(elastic-mapreduce-ruby.zip)をダウンロードする。
  2. アーカイブを解凍する。
    # cd /usr/local
    # mkdir emr-cli
    # cd emr-cli
    # unzip elastic-mapreduce-ruby.zip
  3. 認証ファイルを配置する。
    # vi /usr/local/emr-cli/credentials.json
    {
      "access_id": "アクセスキー",
      "private_key": "シークレットキー",
      "keypair": "キーペアの名前",
      "key-pair-file": "pemファイルのパス",
      "log_uri": "ログファイルの出力先(s3n://バケット名/logs/とか)",
      "region": "ap-northeast-1"
    }
  4. emr-cli/elastic-mapreduce にパスを通しておくと便利。

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のコマンドの例

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には有った)

EMRへ戻る / AWSへ戻る / 技術メモへ戻る
メールの送信先:ひしだま