とりあえず、hadoop用のアカウントを作ってみた。
## __GooglePrettify__
% sudo adduser hadoop
このユーザー用に、パスワード無しのSSH鍵を作って、ログインできるようにしておく。
予めtarballを手動で/usr/ports/distfilesに入れておいて、
## __GooglePrettify__
% cd /usr/ports/java/diablo-jdk16
% sudo make config # TZUPDATEは無効にしておく(手抜き)
で、JDKのインストール
## __GooglePrettify__
% sudo portinstall java/diablo-jdk16
% sudo portinstall shells/bash
JDKが入ったら、次はhadoopのインストール。http://hadoop.apache.org/common/releases.html#Downloadらへんからダウンロード。
## __GooglePrettify__
% tar zxvf hadoop-0.20.1.tar.gz
% cd hadoop-0.20.1/conf
hadoop-env.shのJAVA_HOMEを設定しておく。
## __GooglePrettify__
export JAVA_HOME=/usr/local/diablo-jdk1.6.0
docs/quickstart.htmlを見ながら
conf/core-site.xml
<!-- __GooglePrettify__ -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
conf/hdfs-site.xml
<!-- __GooglePrettify__ -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
conf/mapred-site.xml
<!-- __GooglePrettify__ -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>localhost:9001</value>
</property>
</configuration>
起動してみる。
## __GooglePrettify__
% cd ../bin
% ./hadoop namenode -format # HDFSの初期化
% ./start-all.sh
エラーが出なければ成功。jpsで動作してるか確認できる。
## __GooglePrettify__
% mkdir ~/inputs
% cp CHANGES.txt ~/inputs # 適当なファイルを入れて
% hadoop dfs -put ~/inputs inputs # HDFSにコピー
% hadoop dfs -ls inputs # コピーできたか確認
いよいよ、map, reduceを実行してみる。
## __GooglePrettify__
% hadoop jar hadoop-0.20.1-examples.jar wordcount inputs outputs
ほっとくと、なにやら出力が出て終了。
## __GooglePrettify__
% hadoop dfs -ls outputs
Found 2 items
drwxr-xr-x - hadoop supergroup 0 2009-09-19 22:58 /user/hadoop/outputs/_logs
-rw-r--r-- 1 hadoop supergroup 126351 2009-09-19 22:59 /user/hadoop/outputs/part-r-00000
% hadoop dfs -cat outputs/part-r-00000 # に、単語をカウントした結果が出力される