Amazon EC2におけるHadoopクラスタの環境設定
Amazon Web Service(AWS)への登録
では、せっかくなので、読者の皆さんもEC2上でのHadoopクラスタの構成できるように、手順を紹介します。今回はLinuxから使用する方法を紹介しますが、OSXやWindowsでもほぼ同様の手順で利用できますので、適宜読み替えてください。
まず、Amazon S3にサインアップします。既にAWSのアカウントをお持ちの方は同一アカウントを使用できます。ページ右上の[Sign Up For This Web Service]をクリックして進み、メールアドレスや、EC2/S3の使用料を支払うためのクレジットカード番号などの情報を入力して登録します。

同じように、Amazon EC2にもサインアップします。
EC2 Command-Line Toolsのダウンロード
さて、AWSが利用できるようになったら、EC2を利用するためのツールをインストールします。「Amazon Web Services DEVELOPER CONNECTION」のWebページから「EC2 Command-Line Tools」をダウンロードし、適当なディレクトリに展開してください。
ここでもし、バージョン5.0以上のJREもしくはJDKがインストールされていなければ、インストールしてください。SUNのWebサイトなどからダウンロードできます。
EC2 Command-Line Toolsの設定
さて、ここからは先ほどダウンロードしたEC2 Command-Line Toolsを利用するための環境を整えていきます。
まずはJAVA_HOME環境変数にJavaがインストールされているディレクトリを登録してください。
$ set JAVA_HOME=<PATH>
きちんと登録できたかどうかは
$ $JAVA_HOME/bin/java -version
とすることで確認できます。バージョン番号が表示されれば成功です。
続いて、EC2 Command-Line Toolsを展開したパスも環境変数EC2_HOMEに登録します。
$ export EC2_HOME=<path-to-tools>
そして、このパスをPATH環境変数に追加します。
$ export PATH=$PATH:$EC2_HOME/bin
ここで、安全に(暗号化して)EC2のサーバと通信するための証明書を、Amazonのページからダウンロードします。ページ右上の[Your Web Services Account]にマウスを乗せるとメニューがポップアップされるので[AWS Access Identifiers]をクリックします。
ページ下部の「X.509 Certificate」にある[Create New]をクリックしてください。2つのファイルを保存するように言われるので、適当な場所に2つのファイルを保存します。また、これらのファイルへのパスも環境変数に登録します。

次のように入力して、エラーが出なければ環境変数の設定は成功です。
$ export EC2_PRIVATE_KEY=<path-to-"pk-????.pem"> $ export EC2_CERT=<path-to-"cert-????.pem"> $ ec2-describe-instances
最後に、EC2のマシンとの間でのssh通信で利用する鍵ファイルを生成します。
$ ec2-add-keypair gsg-keypair
と入力すると、しばらくして鍵が表示されるので、「-----BEGIN RSA PRIVATE KEY-----」から「-----END RSA PRIVATE KEY-----」までの部分(この2行も含む)を「id_rsa-gsg-keypair」というファイル名で保存してください。その上で、パーミッションを他人には読まれないように変更してください。
$ chmod 600 id_rsa-gsg-keypair
以上で、EC2を使用する準備は完了です。
HadoopのEC2用スクリプトの設定
次にHadoop側の設定をしましょう。幸いなことに、Hadoopのパッケージには標準でEC2上でクラスタを構成するためのスクリプトが含まれています。
まず、手元のHadoopファイルのディレクトリに移動します(もしHadoopのファイルをまだ入手していなければ、HadoopのWebサイトからダウンロード、展開してください)。
$ cd src/contrib/ec2/bin
「hadoop-0.17.1/src/contrib/ec2/bin/hadoop-ec2-env.sh」を開き、AWSのアカウント情報を設定します。
# Your Amazon Account Number. AWS_ACCOUNT_ID= # Your Amazon AWS access key. AWS_ACCESS_KEY_ID= # Your Amazon AWS secret access key. AWS_SECRET_ACCESS_KEY=
Account NumberはAWSのトップページ右上のメニューから[AWS Account Activity]を選んだ時に表示されるページで確認できます。ハイフンを消して、番号だけをつなげたものを記入します。

AWS access keyとAWS secret access keyは、先ほど証明書をダウンロードしたページ(メニューから[AWS Access Identifiers]を選んだページ)で確認できます。Your Secret Access Keyは下の[show]をクリックすると表示されます。

以上で環境設定は完了です。おつかれさまでした。
