Hadoop0.23をWindowsへインストールしてみる。
Hadoop0.23の環境構築ドキュメントからはWindowsやCygwinという言葉が消えたので、もはやWindows上で動かすのは諦めた方がいいかもしれないが、一応やってみる^^;
$ cd /usr/local $ tar xf $(cygpath -u "C:\Users\hishidama\Downloads\hadoop-0.23.0.tar.gz") $ tar xf $(cygpath -u "C:\Users\hishidama\Downloads\hadoop-0.23.0-src.tar.gz") ←ついでにソースも
$ cd /usr/local/hadoop-0.23.0/share/hadoop/common/lib $ ls -l $ ln -sf ../../../../modules/hadoop-mapreduce-client-app-0.23.0.jar hadoop-mapreduce-client-app-0.23.0.jar
HADOOP_COMMON_HOME | D:/cygwin/usr/local/hadoop-0.23.0 |
HADOOP_HDFS_HOME | %HADOOP_COMMON_HOME% |
HADOOP_MAPRED_HOME | %HADOOP_COMMON_HOME% |
HADOOP_CONF_DIR | %HADOOP_COMMON_HOME%/conf |
~/.bashrc
の最後尾に以下のコマンドを追加する。export JAVA_HOME=$(cygpath -u "$JAVA_HOME") export HADOOP_COMMON_HOME=$(cygpath -u "$HADOOP_COMMON_HOME") export HADOOP_HDFS_HOME=$(cygpath -u "$HADOOP_HDFS_HOME") export HADOOP_MAPRED_HOME=$(cygpath -u "$HADOOP_MAPRED_HOME") export HADOOP_CONF_DIR=$(cygpath -u "$HADOOP_CONF_DIR")
$ cd $HADOOP_COMMON_HOME $ bin/yarn $ bin/yarn classpath $ bin/yarn version $ bin/yarn jar hadoop-mapreduce-examples-0.23.0.jar pi 4 2000
デフォルトのHADOOP_CONF_DIRが単独環境用(Hadoopのデーモンを動かす必要が無い)ということは変わっていないようだ。
従来のMapReduceプログラム(円周率算出サンプルとか)はそのまま実行できる。
EclipseでHadoop0.23のソースを見られるようにしてみる。
%HADOOP_COMMON_HOME%\share\hadoop\common | hadoop-common-0.23.0.jar | |
%HADOOP_COMMON_HOME%\share\hadoop\common\lib | *.jar | ただし、シンボリックリンクになっているもの(ファイルサイズが1kB以下)は除く。 (WindowsのEclipseはシンボリックリンクに対応していないので、jarファイルとして読み込もうとしてエラーになる) |
%HADOOP_HDFS_HOME%\share\hadoop\hdfs | hadoop-hdfs-0.23.0.jar | |
%HADOOP_HDFS_HOME%\share\hadoop\hdfs\lib | *.jar | |
%HADOOP_COMMON_HOME%\modules | *.jar | common/libからのシンボリックリンクはこちらを指している。 |
従来のHadoopのWordCountのソースをそのままコンパイルして実行したら、ちゃんと動いた。
APIは、Jobのインスタンス化の方法が変わっただけのようだ。
(コンストラクターの直接呼び出し(new Job()
)が非推奨になった)
Job job = new Job(conf, "wordcount23"); ↓ Job job = Job.getInstance(conf, "wordcount23");
このWordCountは、EclipseのJavaプロジェクトのビルドパスにHadoop0.23のjarファイルをごっそり追加しているので、Eclipse上から直接実行できる。