2008年1月13日日曜日

【Hadoop】1つのノードで疑似的に分散処理

Hadoopのドキュメント"Hadoop Quickstart"の日本語訳です。
【Hadoop】クイックスタートの続きです。

設定ファイルを用意する

すでに用意されているconf/hadoop-site.xmlを使います。
<configuration>
<property>
<name>fs.default.name</name>
<value>localhost:9000</value>
</property>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>

パスフレーズなしでsshできるようにする

パスフレーズなしでローカルホストにsshできるか確認します。
$ ssh localhost
もしパスフレーズなしでsshできない場合は、以下を実行します。
$ ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

実行する

単一プロセスと同じことを疑似分散でやってみます。

新しい分散ファイルシステムを用意し、Hadoopデーモンを開始します。
$ bin/hadoop namenode -format
$ bin/start-all.sh
入力ファイルを分散ファイルシステムにコピーします。
$ bin/hadoop dfs -put conf input
分散モードの場合も、単一プロセスの場合と同じようにgrepを実行することができます。
$ bin/hadoop jar hadoop-*-examples.jar grep input output ¥
> 'dfs[a-z.]+'

結果を表示する

出力結果を分散ファイルシステムからローカルのファイルシステムにコピーして表示してみます。
$ bin/hadoop dfs -get output output
$ cat output/*
分散ファイルシステム上の出力結果を直接見ることもできます。
$ bin/hadoop dfs -cat output/*

終了する

終わったら、デーモンを止めます。
$ bin/stop-all.sh

おまけ

Hadoopデーモンのログは${HADOOP_LOG_DIR}に書き込まれます。
デフォルトでは${HADOOP_HOME}/logsです。

0 件のコメント: