疑似分散モードでHadoopインストール

さて,KVMを入れ終わりました.次は仮想マシン上でHadoopを動かします.
ひとまず,お手軽に試せる疑似分散モードでインストールしてみましょう.

事前準備

必須ではないのですが,時刻がずれると色々と気持ち悪いので,NTPを有効にしておきます.

cp /etc/ntp.conf /etc/ntp.conf.bak
vi /etc/ntp.conf

# NTPサーバを記述します.ここではMFEEDを指定しました.
server ntp1.jst.mfeed.ad.jp
server ntp2.jst.mfeed.ad.jp
server ntp3.jst.mfeed.ad.jp


一度ntpdateで時刻合わせしてから,デーモン起動.

ntpdate ntp1.jst.mfeed.ad.jp
service ntpd start
chkconfig ntpd on

JDKインストール

ここでJDKを入れますが,間違っても↓のようなことをしてはいけません(経験者談)

  • JREをインストールするとdependenciesでHadoopをインストールできない
  • OpenJDKを入れてもdependenciesでHadoopをインストールできない

またyumでは提供されていないので,自分でダウンロードしてインストールする必要があります.
Java SE Downloadsからどうぞ.(ああ,ついにOracleになってしまった...)


結構面倒だけど,ファイルを入手したらその後は実行すればOK.

chmod 755 jdk-6u22-linux-x64-rpm.bin
./jdk-6u22-linux-x64-rpm.bin

java -version
# こんな表示がされるはず
java version "1.6.0_22"
Java(TM) SE Runtime Environment (build 1.6.0_22-b04)
Java HotSpot(TM) 64-Bit Server VM (build 17.1-b03, mixed mode)

いよいよHadoopインストール

もうここまできたら楽勝です.

curl http://archive.cloudera.com/redhat/cdh/cloudera-cdh3.repo > /etc/yum.repos.d/cloudera-cdh3.repo
yum update
yum install hadoop-0.20-conf-pseudo


試しに実行してみることに.

for service in /etc/init.d/hadoop-0.20-*; do sudo $service start; done

# ここからは一般ユーザで.Piを求めてみる.
hadoop jar /usr/lib/hadoop/hadoop-*-examples.jar pi 2 100000

Number of Maps  = 2
Samples per Map = 100000
Wrote input for Map #0
Wrote input for Map #1
Starting Job
...
Job Finished in 36.814 seconds
Estimated value of Pi is 3.14118000000000000000

疑似分散モードは簡単でした.問題は完全分散モードなんだよ.