SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Google基盤ソフトウェアのオープンソースクローンを使ってみる

blogeyeの実装に学ぶ、Amazon EC2/S3でのHadoop活用術

Google基盤ソフトウェアのオープンソースクローンを使ってみる 4


Amazon EC2におけるHadoopクラスタの環境設定

Amazon Web Service(AWS)への登録

 では、せっかくなので、読者の皆さんもEC2上でのHadoopクラスタの構成できるように、手順を紹介します。今回はLinuxから使用する方法を紹介しますが、OSXやWindowsでもほぼ同様の手順で利用できますので、適宜読み替えてください。

 まず、Amazon S3にサインアップします。既にAWSのアカウントをお持ちの方は同一アカウントを使用できます。ページ右上の[Sign Up For This Web Service]をクリックして進み、メールアドレスや、EC2/S3の使用料を支払うためのクレジットカード番号などの情報を入力して登録します。

Amazon S3のWebページ(右上)
Amazon S3のWebページ(右上)

 同じように、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のアカウント情報を設定します。

hadoop-0.17.1/src/contrib/ec2/bin/hadoop-ec2-env.sh を修正
# 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]をクリックすると表示されます。

 

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

次のページ
Hadoopクラスタの構築・実行

この記事は参考になりましたか?

Google基盤ソフトウェアのオープンソースクローンを使ってみる連載記事一覧

もっと読む

この記事の著者

大倉 務(オオクラ ツトム)

2007年度未踏ソフトウェア創造プロジェクトの支援を受けてblogeyeを開発。大量データを用いた自然言語処理に興味があります。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/2841 2008/08/22 14:06

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー