MacでHadoop(インストール)

http://www.ne.jp/asahi/hishidama/home/tech/apache/hadoop/pseudo.html:こちら]とhttp://d.hatena.ne.jp/daisuke-m/20110605/1307239347:こちら]を参考にインストールする

wgetのインストール

特になくてもいいのだが後々便利なので入れておく

$ cd /Users/UserName/Download
$ tar zxvpf wget-1.14.tar.gz
$ cd wget-1.14
$ ./configure
$ make
$ su -
# make install
  • これで/usr/local/bin以下にインストールされる

hadoopのダウンロード

http://www.apache.org/dyn/closer.cgi/hadoop/common/:このあたり]から好きなのを選んでwgetでダウンロード。今回は0.20.205をチョイス

$ cd ~/Download
$ wget http://ftp.jaist.ac.jp/pub/apache/hadoop/common/hadoop-0.20.205.0/hadoop-0.20.205.0-bin.tar.gz
$ tar zxvfp hadoop-0.20.205.0-bin.tar.gz
$ su -
# mv hadoop-0.20.205 /usr/local
# cd /usr/local
# ln -s hadoop-0.20.205 hadoop
# chown -R admin:staff hadoop-0.20.205
# cd hadoop
# ln -s /var/log logs

面倒なのでパーミッションを自分にしておく。あとログのディレクトリも作成

hadoopの設定

  • /usr/local/hadoop/conf/hadoop-env.sh
export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home
export HADOOP_HOME_WARN_SUPPRESS="TRUE"

Javaの環境変数の設定と、HADOOP_HOME is deplicated のWarningが出るのでその対策を入れておく

  • /usr/local/hadoop/conf/core-site.xml


	fs.default.name
	hdfs://localhost:9000


	hadoop.tmp.dir
	/usr/local/hadoop/tmp


  • /usr/local/hadoop/conf/hdsf-site.xml


	dfs.replication
	1


  • /usr/local/hadoop/conf/mapred-site.xml


	mapred.job.tracker
	localhost:9001


	mapred.system.dir
	/mapred/system


  • ~/.bashrc
. /usr/local/hadoop/conf/hadoop-env.sh
export HADOOP_OPTS="-Djava.security.krb5.realm=OX.AC.UK -Djava.security.krb5.kdc=kdc0.ox.ac.uk:kdc1.ox.ac.uk"

export CLICOLOR=1
export LSCOLORS=DxGxcxdxCxegedabagacad

alias dfsls='/usr/local/hadoop/bin/hadoop dfs -ls'			 
alias dfsrm='/usr/local/hadoop/bin/hadoop dfs -rm'			 
alias dfscat='/usr/local/hadoop/bin/hadoop dfs -cat'		 
alias dfsrmr='/usr/local/hadoop/bin/hadoop dfs -rmr'		 
alias dfsmkdir='/usr/local/hadoop/bin/hadoop dfs -mkdir' 
alias dfsput='/usr/local/hadoop/bin/hadoop dfs -put'	 
alias dfsget='/usr/local/hadoop/bin/hadoop dfs -get'		 
alias hadoop='/usr/local/hadoop/bin/hadoop'

これであっているのでしょうか。。

Hadoopを動かしてみる

$ cd ~/Documents/hadoop
$ cat > test.txt
test test test hoge hoge
$ dfsmkdir input
$ dfsput test.txt input
$ dfsls input
Found 1 items
-rw-r--r--	 1 admin supergroup					2 2012-10-02 10:11 /user/admin/input/users.txt

とりあえず動いているみたいだ

Hadoopのエラー

いろいろ試行錯誤しながらやっていると時々わけのわからないエラーが出ます。

$ dfsput test.txt input/
12/10/02 10:06:24 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File test.txt could only be replicated to 0 nodes, instead of 1
	at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1531)

対処法はごくシンプル

$ /usr/local/hadoop/bin/stop-all.sh
$ rm -rf /usr/local/hadoop/tmp/*
$ hadoop namenode -format
$ /usr/local/hadoop/bin/start-all.sh