debianでhadoopを動かしてみたときのメモ。
正直まだ全然分かってないので、間違ってるかもしれません。

debian5を5台用意してやりました。

サーバは結構古いやつ。 ソースから入れるかaptを使うか悩んでaptにしたけど、結局ソースをいじる必要があるのでaptはやめました。

master: 192.168.18.10
slave1: 192.168.18.11
slave2: 192.168.18.12
...

とする。

まずは6台とも共通の準備。

全部rootで実行してます。 なければsshなどをインストール。

# aptitude install openssh-server ssh rsync

sources.listを編集。(for jdk)

# vi /etc/apt/sources.list

変更
deb http://ftp.jp.debian.org/debian/ lenny main
 →   deb http://ftp.jp.debian.org/debian/ lenny main non-free

で,更新。

# aptitude update

Sun Java6 JDKのインストール。

# aptitude install sun-java6-jdk

以下はMasterで作業

masterにて,各ノードにパスワードなしでsshログインできるようにする。

keyの生成
# ssh-keygen -t dsa -P "" 
masterへ
# cat .ssh/id_dsa.pub >> .ssh/authorized_keys 

各ノードにもmasterのid_dsa.pub を authorized_keysに追加 (省略)

次に、Hadoopのパッケージをダウンロードする。

から、適当なmirrorを選んで、stableなやつをダウンロード。

(今回は0.20.2をダウンロードした。)
# wget http://ftp.riken.jp/net/apache//hadoop/core/stable/hadoop-0.20.2.tar.gz

/usr/local/下に置いて、解凍して、/usr/local/hadoop にリンクを作る
# cp hadoop-0.20.2.tar.gz /usr/local/
# cd /usr/local/
# tar zxf hadoop-0.20.2.tar.gz
# ln -s hadoop-0.20.2 hadoop
# cd hadoop

Hadoopの設定

次は設定。 各種設定ファイルを編集。

まずは conf/masters を編集。 masterのIPアドレスを書く。

192.168.18.1

conf/slaves
slaveのIPを1行に1つ書く。

192.168.18.2
192.168.18.3
....
core-site.xml masterのIPを入れる。 [xml]


fs.default.name hdfs://[master IP]:9000

hadoop.tmp.dir /var/lib/hadoop/cache/${user.name}


[/xml]

hdfs-site.xml [xml]

dfs.name.dir ${hadoop.tmp.dir}/dfs/name

dfs.data.dir ${hadoop.tmp.dir}/dfs/data

dfs.replication 4


[/xml]

mapred-site.xml [xml]


mapred.job.tracker [master IP]:9001


[/xml]

conf/hadoop-env.sh
でJAVA_HOMEを設定。

export JAVA_HOME=/usr/lib/jvm/java-6-sun

これでたぶん設定ができたので、slaveにパッケージをコピーして配置する。

# cd /usr/local/
# tar zcf myhadoop.tar.gz hadoop-0.20.2

省略(各スレーブにmyhadoop.tar.gzを送って、/usr/local/下に展開、
   /usr/local/hadoopにリンクを作る)

hadoopを動かす

※以下は自分ではやってないので、本当にあってるのか分かりません。

masterにて新規ファイルシステムをフォーマット。

# cd /usr/local/hadoop
# bin/hadoop namenode -format

Hadoop DFSの起動

# bin/start-dfs.sh
MapReduceの起動
# bin/start-mapred.sh

動いてるプロセスの確認

# jps

Hadoopデーモンの停止

# bin/stop-mapred.sh
# bin/stop-dfs.sh

参考にしたサイト