Fedora17でAmazon Elastic MapReduce Ruby Clientを使った際のメモ
Amazon Elastic MapReduce Ruby Clientがruby 1.8用であるため、Fedora17では使えない。
ruby1.8をインストールしてAmazon Elastic MapReduce Ruby ClientをFedora17で使えるようにした。
なお、https://github.com/rbotzer/elastic-mapreduce-rubyにruby1.9用のクライアントがあるが、
このクライアントを使ってもEMRを使う事が出来なかった。
ruby1.8のインストール
Fedora17でruby 1.8.7のインストール作業メモ
1. ruby 1.8.7のソースをダウンロードする
2. パッチを当てる
ruby1.8.7はglibc2.14が原因でコンパイルが通らないとのこと。
http://sourceforge.jp/forum/message.php?msg_id=59221
以下のパッチをダウンロードして、
http://bugs.ruby-lang.org/attachments/1931/stdout-rouge-fix.patch
以下の手順でパッチを適用する。
mkdir ruby mv ruby-1.8.7-p371.zip ruby mv stdout-rouge-fix.patch ruby cd ruby unzip ruby-1.8.7-p371.zip cd ruby-1.8.7-p371 patch -p1 < ../stdout-rouge-fix.patch
3. makeしてインストールする
今回は/usr/local/ruby/1.8.7にインストールする。
以下の手順でコンパイルとインストールを実行する。
./configure --prefix=/usr/local/ruby/1.8.7 make sudo make install
以下のコマンドで、ruby1.8.7に切り替える。
sudo alternatives --install /usr/bin/ruby ruby /usr/local/ruby/1.8.7/bin/ruby 30
環境変数PATHにruby1.8.7へのパスを追加する。
~/.bashrcに以下の行を追加する。
export PATH=/usr/local/ruby/1.8.7/bin:$PATH
5. Amazon Elastic MapReduce Ruby Clientをインストールする
後はマニュアル通りにインストールして使用すればよい。
つまづいた点
credentials.jsonを作成して実行し、ログを見ると以下のようなエラーが出た。
the given ssh key name was invalid
原因は、EC2のキーペアをUS EASTで作成していたため。
TOKYOのEC2でキーペアを作りなおして、TOKYOのEMRを使ったら動いた。実に間抜け。