http://www.ne.jp/asahi/hishidama/home/tech/apache/hadoop/pseudo.html:こちら]とhttp://d.hatena.ne.jp/daisuke-m/20110605/1307239347:こちら]を参考にインストールする
wgetのインストール
特になくてもいいのだが後々便利なので入れておく
- http://www.gnu.org/software/wget/:こちら]からwget-1.14.tar.gzをブラウザでダウンロード
- ターミナルを開いてインストール
1 2 3 4 5 6 7 | $ 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をチョイス
1 2 3 4 5 6 7 8 9 10 | $ 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
1 2 | 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
1 2 3 4 5 6 7 8 9 10 | <configuration> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/usr/local/hadoop/tmp</value> </property> </configuration> |
- /usr/local/hadoop/conf/hdsf-site.xml
1 2 3 4 5 6 | <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> </configuration> |
- /usr/local/hadoop/conf/mapred-site.xml
1 2 3 4 5 6 7 8 9 10 | <configuration> <property> <name>mapred.job.tracker</name> <value>localhost:9001</value> </property> <property> <name>mapred.system.dir</name> <value>/mapred/system</value> </property> </configuration> |
- ~/.bashrc
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | . /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を動かしてみる
1 2 3 4 5 6 7 8 | $ 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のエラー
いろいろ試行錯誤しながらやっていると時々わけのわからないエラーが出ます。
1 2 3 | $ 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) |
対処法はごくシンプル
1 2 3 4 | $ /usr/local/hadoop/bin/stop-all.sh $ rm -rf /usr/local/hadoop/tmp/* $ hadoop namenode -format $ /usr/local/hadoop/bin/start-all.sh |