Amazon Elastic MapReduceを使う(その3:コマンドラインツールでBootStrapActionを動かす)
先のログで紹介したEMR用のコマンドラインツール;Elastic MapReduce Rubyはとても使い勝手がよい。
EMRの初回のログで、Managemant ConsoleからJobFlowを定義した際に、BootStrapActionを定義する箇所があった。
BootstrapActionはジョブフロー起動時(EC2インスタンス起動時)に自動的に実行されるアクションなので、ここに定義することで、EMRの初期設定が可能になる。
たとえば、ECではタイムゾーンがUTCで起動してくるが、これは以下のように変更する必要がある。
hadoop@ip-10-122-126-242:~$ date Fri Jun 14 06:19:47 UTC 2013 hadoop@ip-10-122-126-242:~$ sudo rm /etc/localtime hadoop@ip-10-122-126-242:~$ sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime hadoop@ip-10-122-126-242:~$ date Fri Jun 14 15:21:07 JST 2013 hadoop@ip-10-122-126-242:~$
BootStrapAction用のShell Scriptの作成と保存
これをshellスクリプトにして、s3に保管しておき、それをBootstrapオプションで実行する。
以下を、initial.shとして、S3の[your bucket]/[your folder]/に格納する。
#!/bin/bash #s3コマンド用 access_key = [your access key] secret_key = [your secret key] ~/.s3cfg #時刻設定 sudo rm /etc/localtime sudo ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime
BootStrapAction用を指定したJobFlowの起動。
このBootStrapActionを指定して、EMRを起動する。
elastic-mapreduce --create --alive --name Spot-Cluster --instance-group master --instance-type m1.small --instance-count 1 --instance-group core --instance-type m1.small --instance-count 1 --instance-group task --instance-type m1.small --instance-count 1 --bootstrap-action s3n://[your bucket]/[your folder]/initial.sh
ログインして確認すると、以下のように日付が正しく表示される。
MacBook-Pro:~ tetsuya$ ssh -i ~/.ssh/[your key pairs]pem hadoop@[your uri of master] Linux (none) 3.2.30-49.59.amzn1.i686 #1 SMP Wed Oct 3 19:55:00 UTC 2012 i686 -------------------------------------------------------------------------------- Welcome to Amazon Elastic MapReduce running Hadoop and Debian/Squeeze. Hadoop is installed in /home/hadoop. Log files are in /mnt/var/log/hadoop. Check /mnt/var/log/hadoop/steps for diagnosing step failures. The Hadoop UI can be accessed via the following commands: JobTracker lynx http://localhost:9100/ NameNode lynx http://localhost:9101/ -------------------------------------------------------------------------------- hadoop@ip-10-140-73-83:~$ date Fri Jun 28 18:50:45 JST 2013