Hadoopコードのビルド方法

Hadoop (大型本)Hadoopの導入とサンプルによる動作確認が終わったら、コードをビルド・実行してみたくなります。

例として、Map/Reduce チュートリアルで紹介されている単語を数えるプログラムWordCount v1.0をビルドしてみましょう。

パッケージ構成通りにディレクトリを作成し、コードを記述します。

mkdir -p org/myorg
touch org/myorg/WordCount.java
WordCount.javaを編集

Classファイルを格納するディレクトリを作ります。

mkdir wordcount_classes

コンパイルします(環境変数はどこかで1回設定すればいいです)。

export HADOOP_HOME=/home/yabuki/hadoop-0.20.1
export HADOOP_VERSION=0.20.1
javac -classpath ${HADOOP_HOME}/hadoop-${HADOOP_VERSION}-core.jar -d wordcount_classes org/myorg/WordCount.java

Classファイルをjarにまとめます。

jar -cvf wordcount.jar -C wordcount_classes/ .

入力データを作ります。

mkdir input
echo 'a b c' > input/a
echo 'a c b b a' > input/b

実行します。

rm -rf output
${HADOOP_HOME}/bin/hadoop jar wordcount.jar org.myorg.WordCount input output

結果を確認します。

cat output/*
a       3
b       3
c       2

AntやMavenのようなビルドツールを使うのが正統なのですが、あとでEclipseを使う方法を紹介するので、どうでもいいでしょう。

つづく

  • 疑似分散モード
  • Eclipseプラグイン
  • 完全分散モード
  • Cloudera’s Distribution for Hadoop