Mac OS X 10.6.7 Snow Leopard に Hadoopをインストールする

  • 概要

http://happy-camper.st/lang/java/hadoop/hadoop-on-macosx.html
の通りにやったらできました。ただの動作確認で、細かい設定はしていません。
インストールにmakeなど不要で、JAVAさえあれば落としてきたものを展開すれば動作確認まではできると思います。

  • ダウンロード

Apacheミラーからとってくる。このときのバージョンはhadoop-0.20.2.tar.gzでした。
http://www.apache.org/dyn/closer.cgi/hadoop/core/

  • 展開、配置
    • /usr/localで解凍
$ sudo mv hadoop-0.20.2.tar.gz /usr/local/
$ cd /usr/local/
$ sudo tar zxvf hadoop-0.20.2.tar.gz 
$ sudo ln -s hadoop-0.20.2 hadoop
  • ユーザーの追加、設定ファイルの修正
    • hadoopユーザーを追加する
      • 空き番号の確認
$ sudo dscl . -list /Groups PrimaryGroupID | cut -c 32-38 | sort -rn
$ sudo dscl . -list /Users UniqueID | cut -c 23-28 | sort -rn
      • 空き番号で追加
$ sudo dscl . -create /Groups/_hadoop PrimaryGroupID 300
$ sudo dscl . -append /Groups/_hadoop RecordName hadoop
$ sudo dscl . -create /Users/_hadoop UniqueID 300
$ sudo dscl . -create /Users/_hadoop RealName "Hadoop Service"
$ sudo dscl . -create /Users/_hadoop PrimaryGroupID 300
$ sudo dscl . -create /Users/_hadoop NFSHomeDirectory /var/lib/hadoop
$ sudo dscl . -create /Users/_hadoop Password "*"
$ sudo dscl . -append /Users/_hadoop RecordName hadoop
$ sudo /usr/sbin/createhomedir -b -u hadoop
$ sudo su - hadoop
  • 各種設定
$ sudo su - hadoop
$ ssh-keygen
$ cd .ssh
$ cat id_rsa.pub >> authorized_keys
$ exit

※動作確認だけならいらないかも

    • 設定ファイルの修正
$ sudo vi /usr/local/hadoop/conf/hadoop-env.sh

hadoop-env.shに以下を追記

export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export HADOOP_CLASSPATH=/opt/local/share/scala-2.8/lib/scala-library.jar

※上記ファイルに書いておかないと起動時(start-all.sh)にエラー(JAVA_HOME is not set.)になります。

$cd /usr/local/hadoop
$ sudo mkdir logs
    • NameNodeのフォーマット
$ sudo su - hadoop
$ /usr/local/hadoop/bin/hadoop namenode -format
$ sudo su - hadoop
$ /usr/local/hadoop/bin/start-all.sh 

テキストファイルの単語を数えるサンプルがhadoop直下にあるので実行します。
インプット用のディレクトリを作成(-mkdir)、テキストファイルを格納(-put)、プログラム実行の順番です。

/usr/local/hadoop/bin/hadoop dfs -mkdir test_input
/usr/local/hadoop/bin/hadoop dfs -put hadoop.txt test_input/
/usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/hadoop-0.20.2-examples.jar wordcount test_input/ test_output

※アウトプットファイルはプログラム実行時に生成され、中に結果ファイルが格納されるので手動で作らなくてOKです。
hadoopユーザーでなくても上記の動作確認できます。
※start-all.shで起動していなくても上記の動作確認できます。