2013年1月9日水曜日

Windows7にHadoop

Hadoopプログラミングをする上で,いちいちサーバにjarを持って行ってテストをするのは大変すぎるので,Windows上のEclipseでHadoopプログラムをデバッグすることを目指す.

インストール

まず,
https://ccp.cloudera.com/display/SUPPORT/CDH+Downloads
で,CDH3のtarを取得.
CDH3なのはサーバとバージョンを併せるため.

とりあえず,
Hadoop-0.20.2+923.421
をダウンロード.
Cygwinの/usr/local/libに展開.

$ cd /usr/local/lib
$ tar zxvf hadoop-0.20.2-cdh3u5.tar.gz
$ ln -s /cygdrive/c/Program\ Files\ \(x86\)/Java/jdk1.7.0_07/ jdk1.7
$ ln -s jdk1.7 java

Windowsの環境変数にHADOOP_HOMEを追加. Pathも追加.
HADOOP_HOME:C:\usr\cygwin\usr\local\lib\hadoop-0.20.2-cdh3u5
PATH:...;%HADOOP_HOME%\bin

hadoop/bin/hadoop-config.shに以下を追記
# the root of the Hadoop installation
if [ -z "$HADOOP_HOME" ]; then
  export HADOOP_HOME=`dirname "$this"`/..
else
  export HADOOP_HOME=$(cygpath -u "$HADOOP_HOME")
fi
hadoop-env.shにも以下を追記.
# The java implementation to use.  Required.
export JAVA_HOME=/usr/local/lib/java

Windowsではローカルモードでしか起動しないので,以下のように設定する.
conf/core-site.xml
<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>C:\tmp\hadoop</value>
    </property>
</configuration>
conf/mapred-site.xml
<configuration>
    <property>
        <name>mapred.job.tracker</name>
        <value>local</value>
    </property>
</configuration>

Eclipseプラグイン

次に,Eclipseにプラグインを入れる. ここで,CDH3のHadoopにはEclipseのプラグインがないので,別途 hadoop-0.20.2.tar.gzをDLしてきて,
hadoop-0.20.2\contrib\eclipse-plugin\hadoop-0.20.2-eclipse-plugin.jar
をEclipseのpluginsにコピーする.

テスト

このページを参考に,
http://www.ne.jp/asahi/hishidama/home/tech/apache/hadoop/tutorial.html
WrodCounterをコピペ.
さらに,Starterとして以下を作成.inputFile.datには適当な文を入れておく.

public class Starter {
 static public void main(String[] args) throws Exception{
  WordCount.main(new String[]{"inputFile.dat", "output"});
 }
}

ここで,chmodがないよ,と怒られるので,Pathに以下を追加
Path ~;C:\usr\cygwin\bin
inputFile.dat
Hello World!
Hello Hadoop!
output/part-r-00000
Hadoop! 1
Hello 2
World! 1
無事成功.

0 件のコメント: