2009年5月1日金曜日

Hadoop 0.18.3 を分散にしてMacで動かしてみる / 設定と確認

前回に続き,手持ちの他のMacはPowerBook G4 12インチ.で,コイツをslaveにしてやってみようと思ったのだけど.
G4は32bit, MacOS X 10.5.6のJava 1.6は64bit版のみ.だからHadoop 0.20はとりあえず配布版ではダメっぽい.もしかしたら妄想.
(ソースから1.5系でコンパイルし直すとかあるのかもしれないけど.ソース自体1.6依存だと直すことになるだろうからやらない.)

ということでHadoop 0.18.3 でやることにした.stable版になるらしい.
ちなみにDocumentはこちらになるらしい.

でやった事.

Master / 10.0.1.2
tar.gzの展開
${HADOOP_HOME}とする.
でコイツなんだけどSlave側もログイン先からは同じ絶対PATHにする必要があるっぽいので,場所は考える必要がある(らしい).
とりあえず今回は同じユーザ名があるのでそれぞれのDownloads下においた.
$ pwd
/Users/work/Downloads/hadoop-0.18.3

JAVA_HOMEの設定
${HADOOP_HOME}/conf/hadoop-env.sh を編集, 最初のあたりに書いてあるがJAVA_HOMEを追加
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Home

環境設定
${HADOOP_HOME}/conf/hadoop-site.xml を編集,configuration要素を以下のようにする.ファイルシステム等のマスターの指定(らしい).
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://10.0.1.2:9000</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://10.0.1.2:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
10.0.1.2は今回のMaster.
${HADOOP_HOME}/conf/masters を編集,MasterのIP,FQDN,ホスト名(IPが解決できるようにしておく事)を記述する.
10.0.1.2
10.0.1.2は今回のMaster.
${HADOOP_HOME}/conf/slaves を編集,SlaveのIP,FQDN,ホスト名(IPが解決できるようにしておく事)を記述する.
一行に一つ.
10.0.1.2
10.0.1.5
10.0.1.2は今回のMaster.10.0.1.5は今回のSlave.

ssh
Passwordなしのログインがmaster->masterで可能にする.
Quick StartのSetup passphraseless sshのまま実行.
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
autorized_keysに登録された公開鍵と対応する秘密鍵を持つマシンから入れるようになる.

確認しておく.Master / 10.0.1.2から
$ ssh 10.0.1.2
Passwordがきかれなければよい.


Slave / 10.0.1.5
sshの設定以外は上記Masterと同じ.

ssh
Passwordなしのログインがmaster->slaveで可能にする.
Masterで作ってある~/.ssh/id_dsa.pubをSlaveへ持ってくる.でそれをSlaveで許可して上げるように登録する.
$ cat id_dsa.pub >> ~/.ssh/authorized_keys
autorized_keysに登録された公開鍵と対応する秘密鍵を持つマシンから入れるようになる.

確認しておく.Master / 10.0.1.2から
$ ssh 10.0.1.5
Passwordがきかれなければよい.


動作と確認
${HADOOP_HOME}にて.
ファイルシステムの初期化
Master / 10.0.1.2にて
$ bin/hadoop namenode -format


サーバ類の起動
Master / 10.0.1.2にて
$ bin/start-all.sh
Slave / 10.0.1.5も起動する


確認
Master / 10.0.1.2で開いてみる
  • NameNode - http://localhost:50070/
  • JobTracker - http://localhost:50030/
    NameNode を表示してLive Datanodesが2だったり, JobTracker を表示してCluster SummaryのNodesが2になっておいればよいらしいよ.


  • サーバ類の停止
    Master / 10.0.1.2にて
    $ bin/stop-all.sh
    Slave / 10.0.1.5も停止する




    という感じでおいらはできました.という記録.あとはMap/Reduce Tutorial等で遊ぶぐらい.

    参考:たぶん10分でできるHadoop::DFSとHadoop::MapReduce

    0 件のコメント: