これでhadoop-0.20-confに/etc/hadoop/conf.bc_clusterを反映する設定は完了です。†hadoopディレクトリを作成し、HDFS、MapReduceが動作する状態に設定します。core-site.xmlのhadoop.tmp.dirの設定で/hadoopを指定していまので/以下にhadoopディレクトリを作成しディレクトリ全体をフルアクセスにします。あわせてdfs,mapredディレクトリも作成し所有者とグループをそれぞれhdfs:hadoop、mapred:hadoopに設定します。mapredNotenamenode、jobtrackerの起動時に所有者に対するエラーが起こる事をふせぐためdfs、mapredディレクトリのユーザグループをhadoopに設定しています。†Hadoopの各ノードの起動する前に必要のないHadoopの各サービス起動していればサービスを停止します。以下のコマンドはhadoo-0.20-に関連づいているノード全てを停止するコマンドになります。†Master、Slaveともにhdfsのフォーマットをhdfsユーザで実行します。この作業はSlaveが1台増える毎に実行します。実行せずにSlaveのマシンを増やしてHadoopを起動すると整合性あわないというエラーが起こるためです。各ノードの起動順は大きくHDFS->MapReduceの順で起動します。以下に書くノードの起動の概略を記載します。Master(namenode)->Slave(datanode)->Master(jobtracker)->Slave(tasktracker)Master(atomcloud2)のnamenode起動後に各Slave(atomcloud1、3〜8)のdatanodeを起動します。今回はテスト版としてsecondarynamenodeは起動しません。Slaveのdatanode起動後、Masternにて/mapred/systemを作成し所有者の変更を行いmasterのjobtrackerを起動します。その後各Slaveのtasktrackerを起動します。停止の際はMasterからノードを停止し各Slaveのノードを停止します、以下に各ノードの起動時と停止時を記載します。:namenodeを以下のコマンドで起動します。:datanodeを以下のコマンドで起動します。:hdfsユーザに切り替えて/mapred/systemの作成します。/mapredNotehdfsユーザで/mapred/systemをhdfs上に作成しないとreplicationの作成に失敗し、rootユーザで実行すると権限により所有者が変更できませんのでhdfsユーザで実行しています。:jobtrackerを以下のコマンドで起動します。:tasktrackerを以下のコマンドで起動します。start各ノードの停止順Masterのノードをを以下のコマンドで停止します。stop各Slaveのノードを以下のコマンドで停止します。AdministrationのWebUIが以下のURIで閲覧することでサービスの確認ができます。Node数を確認することでSlaveが起動しているかの確認ができます。すべてのNodeが反映されるまで若干時間がかかることがあります。サンプルが含まれています。以下のコマンドを実行するとより詳細なExamplesの例とTestの例が表示されます。...<略>ここではExamplesのpiとTestに含まれるTestDFSIOのwrite、readとcleanをサンプルとして実行します。Examplesのpiの引数は10と1000。-cleanは作成したファイルを削除します。-cleanの際も追記するようにしています。3.14080000000000000000TestDFSIOwrite、read、cleanを一度でテストするために以下のようなスクリプトで実行しています。TestDFSIO_results.logTestDFSIO_results.logは以下のように出力されます。----以上で、完全分散モードの動作確認は完了です。以下のGangliaの設定は必須設定ではありません。各サーバの使用状況のモニタリングをするためにGangliaを設定しています。AdministrationにWebUIがありますが、クラスタリングマシン各マシンの時系列を含めたCPU、メモリ、ディスクの使用頻度の可視化ツールとしてGangliaをインストールします。役割としてはMaster、Slave、Monitorがあります。ここではMasterとMonitorをatomcloud2、その他のマシンは全てSlaveとして設定しています。詳細はganglia.infoをご覧ください。†atomcloud2でrpmforge(サードパーティリポジトリ)からx86_64版rpmforge-release-0.5.2-2.el5.rf.x86_64.rpmをダウンロードしインストールします。coreの最新版3.17をダウンロードします。http://sourceforge.net/projects/ganglia/files/ganglia%20monitoring%20core/3.1.7/ganglia-3.1.7.tar.gz/downloadダウンロード後rpmパッケージ化するためにrpmbuildを行うと以下のようなエラーが出ます。必要とされています表示されている必要な依存パッケージをインストールします。-y再度rpmbuildを実行すると/usr/src/redhat/RPMS/以下にgangliaの各rpmが作成されています。../noarch/ganglia-web-3.1.7-1.noarch.rpmGangliaのインストール先のMaster(atomcloud2)とSlave(atomcloud1、atomcloud3~8)にはganglia-gmond-3.1.7-1.x86_64.rpmとlibganglia-3_1_0-3.1.7-1.x86_64.rpmを使用します。ファイルは適宜scpなどを用いて各マシンにコピーします。Monitor(atomcloud2)にはganglia-gmetad-3.1.7-1.x86_64.rpmとganglia-web-3.1.7-1.noarch.rpmを使用します。Slaveに必要なrpmはscpなどを用いてコピーします。atomcloud2以外のマシンではrpmforgeがインストールされていないためGanliaに必要なlibconfuse-develなどをインストールする必要があります。ganglia-gmond-3.1.7-1.x86_64.rpmMonitor(atomcloud2)Monitorにはganglia-gmetad、ganglia-webgmetad、httpdとphp、php-gdをインストールします。†Gangliaの設定ファイルgmond.confを記載します。yesのコメントはずします。†Masterと同様にSlaveのgmond.confを以下のように記載します。yesのコメントをはずします。mcast_joinのアドレスをMasterのmcast_joinのアドレスと異なるように設定します。各マシンでGangliaサービスのgmondを起動します。†MonitorのGangliaの設定ファイルgmetad.confを以下に記載します。clusterで指定したnameと対象マシンを以下のようにスペース区切りで記載しています。†Monitorマシン上でhttpdのサービスを登録します。サービスレベルの設定は使用環境に合わせて適宜変更してください。6:offhttpdとMonitorのGangliaサービスgmetadを起動します。startGanliaのWebUIをatomcloud2に設定していますので以下のURLで確認できます。http://atomcloud2/ganglia/Gangliaのスクリーンショット以上でGangliaの設定は完了です。