さて、早速インストール。実験環境は8ノードのPCクラスタ(ホスト名はnode00-07)で、ホームディレクトリはNFSで共有され、SSHはホストベース認証が設定済み。JDK 1.6.0_13。環境変数JAVA_HOMEは別途.zshenvで設定済みなので、conf/hadoop-env.shはいじらない。
以下は、クラスタ環境での設定メモ。
設定ファイルはconfディレクトリ以下に存在し、サイトごとの設定はhadoop-site.xmlで行う。
conf/hadoop-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://node00:54310</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>node00:54311</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
マスターノードとスレーブノードはそれぞれ以下のファイルにホスト名を列挙しておく。
conf/masters:
node00
conf/slaves:
node00
node01
node02
node03
node04
node05
node06
node07
HDFSのフォーマット
$ bin/hadoop namenode -format
Hadoopの起動
$ bin/start-all.sh
念のため、jpsコマンドでマスターノードにJobTrackerとNameNode(とSecondaryNameNode)、スレーブノードにTaskTrackerとDataNodeが起動していることを確認する。
Hadoopの終了
$ bin/stop-all.sh
MapReduceの実行
Quick Startの例を実行してみる。まずはconfディレクトリの内容をHDFSにコピーする。
$ bin/hadoop fs -put conf input
サンプルのgrepを実行。HDFS上のinputからファイルを読み込み、結果をoutputに出力する。
$ bin/hadoop jar hadoop-*-examples.jar grep input output 'dfs[a-z.]+'
出力をローカルファイルに出力する。
$ bin/hadoop fs -get output output
蛇足だけど、httpdにはJettyを使っている。
0 件のコメント:
コメントを投稿