SHOEISHA iD

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

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

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

複数マシンへHadoopをインストールする

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


  • X ポスト
  • このエントリーをはてなブックマークに追加

4.今回使用したノード構成

 今回はc0-0をmasterノード、それ以外(c0-1~ c0-23)をslaveノードという構成でセットアップします。今回用いたHadoopのバージョンは、2008/6/17現在のstable版である0.16.4です。これをホーム直下のhadoopというディレクトリに解凍します(図2)。なお、以降はこのディレクトリのパスを [HADOOP INSTALL]という記法で表します。

図2. hadoop.tar.gzの解凍
[kzk@c0-0 ~]$ tar zxf hadoop-0.16.4.tar.gz
[kzk@c0-0 ~]$ mv hadoop-0.16.4 hadoop

4.1. 前準備

 Hadoopのインストールを行う前に、すべてのノードにおいて次の2つの作業を行ってください。

4.1.1. /etc/hostsの設定

 まずは、すべてのノードにおいて、他のノードのIPアドレスをホスト名から取得できるようにしてください。

 具体的には/etc/hostsを編集します。c0-0(192.168.0.1)とc0-1(192.168.0.2)の2台構成のクラスタでは、図3のような内容を各ノードの/etc/hostsに追加すれば良いでしょう。

図3. /etc/hostsの設定
# /etc/hosts
192.168.0.1 c0-0
192.168.0.2 c0-1

4.1.2. sshの設定

 次に、sshの設定も行います。masterからmaster、masterからすべてのslaveに対してノーパスワードでssh接続ができることを確認してください(図4)。

図4. sshの設定
[kzk@c0-0 ~]$ ssh c0-0
Last login: Tue Jun 17 18:52:58 2008 from c0-0
[kzk@c0-0 ~]$
[kzk@c0-0 ~]$ ssh c0-1
Last login: Tue jun 17 18:53:42 2008 from c0-0
[kzk@c0-1 ~]$

4.2. Hadoopのインストール

 それでは実際にHadoopをセットアップします。手順は次のとおりです。

  1. Hadoopのインストール
  2. [HADOOP INSTALL]/conf/mastersの編集
  3. [HADOOP INSTALL]/conf/slavesの編集
  4. [HADOOP INSTALL]/conf/hadooop-site.xmlの編集
  5. slaveノードへのhadoopディレクトリ配布
  6. NameNodeのフォーマット

4.2.1. Hadoopのインストール

 まず、c0-0(master)にHadoopをインストールします。具体的な手順は、前回記事を参考にしてください。

4.2.2. [HADOOP INSTALL]/conf/mastersの編集

 c0-0(master)の[HADOOP INSTALL]/conf/mastersを編集します。[HADOOP INSTALL]/conf/mastersファイルにmasterノードのホスト名を記述してください(図5)。

図5. conf/mastersの設定
[kzk@c0-0 ~]$ cat hadoop/conf/masters
c0-0

4.2.3. [HADOOP INSTALL]/conf/slavesの編集

 c0-0(master)の[HADOOP INSTALL]/conf/slavesファイルに slaveノードのホスト名を列挙します (図 6)。今回は負荷を考慮してmaster用に1つのノードを用いましたが、slavesファイルにmasterノード自身の名前を追加すると、masterノードにもslaveノードの役割も持たせる事ができます。ノード数が少ない場合はこの方法が有効でしょう。

図6. conf/slavesの設定
c0-1
c0-2
c0-3
c0-4
c0-5
c0-6
c0-7
c0-8
c0-9
c0-10
c0-11
c0-12
c0-13
c0-14
c0-15
c0-16
c0-17
c0-18
c0-19
c0-20
c0-21
c0-22
c0-23

4.2.4. [HADOOP INSTALL]/conf/hadooop-site.xmlの編集

 c0-0(master)の[HADOOP INSTALL]/conf/hadooop-site.xmlを編集します。fs.default.namemapred.job.trackerの値を次のように設定してください (図7)。

図7. conf/hadoop-site.xmlの設定
<property>
    <name>fs.default.name</name>
    <value>hdfs://c0-0:54310</value>
    <description>The name of the default file system. A URI whose
    scheme and authority determine the FileSystem implementation. The
    uri’s scheme determines the config property (fs.SCHEME.impl) naming
    the FileSystem implementation class. The uri’s authority is used to
    determine the host, port, etc. for a filesystem.</description>
</property>
<property>
    <name>mapred.job.tracker</name>
    <value>c0-0:54311</value>
    <description>The host and port that the MapReduce job tracker runs
    at. If "local", then jobs are run in-process as a single map
    and reduce task.
    </description>
</property>

4.2.5. slaveノードへのhadoopディレクトリ配布

 最後に、c0-0(master)から他のノードすべてにhadoopディレクトリをコピーします。今回使用したクラスタでは、/home以下はNFSで共有されているのでこの操作は必要ありませんでしたが、共有されていない場合はrsyncコマンドで[HADOOP INSTALL]ディレクトリをすべてのノードにコピーしてください。

 図8で紹介しているスクリプトファイルをmasterノードで実行すると良いでしょう。

図8. /home/kzk/hadoopディレクトリを他のノードに rsyncでコピー
#!/bin/sh
for i in ‘seq 1 23‘; do rsync --progress -av /home/kzk/hadoop c0-$i:/home/kzk/; done;

4.2.6. NameNodeのフォーマット

 masterノードにてNameNodeが使用する領域のフォーマットを行います(図9)。

図9. NameNodeのフォーマット
[kzk@c0-0 ~]$ ./hadoop/bin/hadoop namenode -format

 以上でインストールは完了です。

4.3. Hadoopの起動

 それでは実際に起動してみましょう。Hadoopの起動には「[HADOOP INSTALL]/bin/start-all.sh」を、停止には「[HADOOP INSTALL]/bin/stop-all.sh」を使用します(図10)。この操作はmasterノードで行う必要があります。

図10. Hadoopの起動・停止
[kzk@c0-0 ~]$ ./hadoop/bin/start-all.sh # Hadoopの起動
[kzk@c0-0 ~]$ ./hadoop/bin/stop-all.sh  # Hadoopの停止

 start-all.shとstop-all.shは、mastersファイルとslavesファイルを元にssh経由でサーバを起動・停止するスクリプトです。各サーバの起動状況は、各ノードにてjpsコマンドを実行した際のプロセスの有無で確認できます。もし何か問題が発生している場合は、各ノードの「HADOOP LOG DIR([HADOOP INSTALL]/conf/hadoop-env.shで指定)」にログファイルが吐かれているはずなので、それを元に問題を探ってみてください。

次のページ
5. 動作確認

修正履歴

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
Google基盤ソフトウェアのオープンソースクローンを使ってみる連載記事一覧

もっと読む

この記事の著者

太田 一樹(オオタ カズキ)

東京大学情報理工学系研究科コンピューター科学専攻石川研究室M1。並列プログラミングや、大規模システムソフトウェアに興味があります。 Webページ ブログ Twitter今までに投稿した記事 Hadoop、hBaseで構築する大規模分散データ処理システム Hadoopのインストールとサンプルプログラムの実行 複数マシンへHadoopをインストールする blogeyeの実装に学ぶ、Amazon EC2/S3でのHadoop活用術 (by 大倉さん)

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/2699 2009/07/28 20:56

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング