FC2ブログ
よしたんのぶろぐ
202104<<12345678910111213141516171819202122232425262728293031>>202106
「Hadoop 0.15.2をローカル環境で試す」に続いて、Cluster環境を構築してみました。
Fedora7 x86_64上のCentOS5 (2.6.18-8.el5xen)のVMを複製し、4ノード用意。

Xenゲストイメージの複製メモ
  1. Xenゲストイメージファイルのコピー
  2. Xenゲスト構成ファイルのコピー、および名前・MACアドレス・UUIDの変更
  3. XenゲストOSのホスト名の変更
    • /etc/hosts
    • /etc/sysconfig/network
  4. XenゲストOSのIPアドレス・MACアドレスの変更
    • /etc/sysconfig/network-scripts/ifcfg-eth0
イメージをコピーしたものを起動したときにエラーになってしまう場合(/var/log/xen/xend-debug.logにXendInvalidDomain:と出るとき)は
# /etc/init.d/xendomains restart
とすると直った。

Hadoop Cluster構成メモ(r0.15.2)
基本はHadoop Cluster Setupを参考に。以下、今回の構成。
  Masterノード(NameNode, JobTracker):Fedora7
  Slaveノード(DataNode, TaskTracker):CentOS5 x 4
Slave用に用意した4ノードのCentOS5に対してPrereqの設定。
  1. Java 1.5.x以上の導入
  2. JAVA_HOMEの設定
  3. SSHの構成(CentOSではDefault起動している)
  4. MasterからSlaveへパスフレーズなしでのSSHログイン設定
    • Master上の.ssh/id_dsa.pubの内容をSlave上の.ssh/authorized_keysに追加しておく
続いてHadoop 0.15.2の導入。HADOOP_HOMEとして/work/hadoopに統一しておく。
Master上の<HADOOP_HOME>/conf/slavesにslave nodeのIPアドレスを追加しておく。
Slave上の<HADOOP_HOME>/conf/hadoop-site.xmlにfs.default.nameとmapred.job.trackerを設定しておく。これはStand Aloneと同じにしておいた(これでいいのかは不明)。

一度、Master/Slaveノード上すべてのhadoopファイルシステム(/tmp/hadoop/hadoop-<user>ディレクトリ)を消去しておく。
Master上で改めてファイルシステムのフォーマット。
$ <HADOOP_HOME>/bin/hadoop namenode -format
デーモン起動
$ <HADOOP_HOME>/bin/start-all.sh
Jobの実行
$ <HADOOP_HOME>/bin/hadoop dfs -put conf input
$ <HADOOP_HOME>/bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
デーモンの停止は
$ <HADOOP_HOME>/bin/stop-all.sh
Jobの実行時にReduceで"slow host"になって進まない事態が生じたが、各slaveノードで名前解決できていないとだめみたいで、/etc/hostsにすべてのホスト名を書くことで解決できた。
また、何度かJobの実行が失敗する場合(safe modeになっているとか、exceptionが生じるなど)は、ファイルシステムをリフォーマットしてデーモンを再起動することで回避できた。

クラスター、Dataノードの状態は以下のような感じ。


完了したJob


投入するJobプログラムまでは書く時間がない。。Sampleがあるので気が向けば。

ひとまず我が家にもSmallクラウドコンピューティング環境ができたのでした。これとLive Migrationを組み合わせたらすごいことになりそう。
スポンサーサイト



   
   
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2005 Powered By FC2ブログ allrights reserved.