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
無事成功.